【问题标题】:Accessing Elastic Beanstalk environment properties in Docker在 Docker 中访问 Elastic Beanstalk 环境属性
【发布时间】:2014-09-28 18:17:05
【问题描述】:

所以我一直在寻找如何从 AWS EB Web 界面为我的 Docker 容器指定环境变量的示例。通常在 EB 中,您可以添加在运行时可用的环境属性。在我切换到 Docker 之前,我在以前的部署中使用了这些,但似乎 Docker 关于如何处理环境属性有一些不同的规则,对吗?根据这篇文章 [1],只有 AWS 凭证和 PARAM1-PARAM5 会出现在环境变量中,但不会出现自定义属性。这就是我听起来的样子,特别是考虑到支持自定义环境属性的容器明确表示,就像这里显示的 Python [2]。有没有人有这个软件组合的经验?我只需要指定一个环境变量,它告诉我应用程序是处于“暂存”模式还是“生产”模式,然后我的所有环境特定配置都由应用程序本身设置。

[1]http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/command-options.html#command-options-docker

[2]http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/command-options.html#command-options-python

【问题讨论】:

    标签: environment-variables docker amazon-elastic-beanstalk


    【解决方案1】:

    AWS Elastic Beanstalk Docker 容器支持自定义环境变量。看起来像文档中的遗漏。您可以为您的环境定义自定义环境变量,并期望将它们传递给 docker 容器。

    【讨论】:

    • 容器启动时这些是否可用?例如,如果我重新启动我的环境(而不是重新部署)?
    • 是的,它们可用
    【解决方案2】:

    我需要使用 Elastic Beanstalk 在 docker run 时传递环境变量,但是不允许将此信息放在 Dockerrun.aws.json 中。

    解决此场景的步骤如下:

    1. 创建文件夹 .ebextensions
    2. 在文件夹中创建一个.config文件
    3. 填写.config文件:

    option_settings:
    -option_name: VARIABLE_NAME value: VARIABLE_VALUE

    1. 压缩文件夹 .ebextensions 文件以及 Dockerrun.aws.json 和 Dockerfile 并将其上传到 Beanstalk

    要查看结果,在 EC2 实例中,执行命令“docker inspect CONTAINER_ID”,将看到环境变量。

    【讨论】:

      【解决方案3】:

      我不认为像Rohit Banga's answer 建议的那样错过这些文档。认为我同意“您可以为您的环境定义自定义环境变量,并期望它们将传递给 docker 容器”。

      Docker container portion of the docs 说,“Elastic Beanstalk 没有提供 DOCKER-SPECIFIC 配置选项”...这并不一定意味着没有环境变量传递给 Docker 容器。

      例如,始终传递的for the Ruby container the Ruby-specific variables 是... RAILS_SKIP_MIGRATIONS、RAILS_SKIP_ASSET_COMPILATION、BUNDLE_WITHOUT、RACK_ENV、RAILS_ENV。等等。对于 Ruby 容器,假设您正在运行一个 Ruby 应用程序,因此设置一些合理的默认值以确保它们始终可用。

      另一方面,对于 Docker 容器,它似乎是开放的。你可以指定任何你想要的变量......它们不会假设你正在运行什么,Rails(Ruby),Django(Python)等......因为它可以是任何东西。他们事先不知道您要运行什么,因此很难设置合理的默认值。

      【讨论】:

        猜你喜欢
        • 2017-05-06
        • 2015-10-23
        • 2020-11-03
        • 2015-08-05
        • 1970-01-01
        • 2019-02-19
        • 2016-02-01
        • 2020-08-19
        • 2017-08-14
        相关资源
        最近更新 更多