Environment variables 在Docker中访问弹性Beanstalk环境属性
因此,我一直在寻找一个示例,说明如何从AWS EB web界面为Docker容器指定环境变量。通常在EB中,您可以添加运行时可用的环境属性。在切换到Docker之前,我在上一次部署中使用了这些,但Docker似乎在如何处理环境属性方面有一些不同的规则,对吗?根据本文[1],环境变量中将只存在AWS凭据和PARAM1-PARAM5,而不存在自定义属性。这就是我听起来的感觉,特别是考虑到确实支持自定义环境属性的容器会显式地说出来,就像这里显示的Python[2]。有人有过这种软件组合的经验吗?我只需要指定一个环境变量,它告诉我应用程序是处于“暂存”模式还是“生产”模式,然后我的所有特定于环境的配置都由应用程序本身设置 [1]Environment variables 在Docker中访问弹性Beanstalk环境属性,environment-variables,docker,amazon-elastic-beanstalk,Environment Variables,Docker,Amazon Elastic Beanstalk,因此,我一直在寻找一个示例,说明如何从AWS EB web界面为Docker容器指定环境变量。通常在EB中,您可以添加运行时可用的环境属性。在切换到Docker之前,我在上一次部署中使用了这些,但Docker似乎在如何处理环境属性方面有一些不同的规则,对吗?根据本文[1],环境变量中将只存在AWS凭据和PARAM1-PARAM5,而不存在自定义属性。这就是我听起来的感觉,特别是考虑到确实支持自定义环境属性的容器会显式地说出来,就像这里显示的Python[2]。有人有过这种软件组合的经验吗?我只需
[2] AWS Elastic Beanstalk Docker容器支持自定义环境变量。文档中似乎有遗漏。您可以为您的环境定义自定义环境变量,并期望它们将被传递到docker容器。我不认为文档会像建议的那样丢失。我认为我同意“您可以为您的环境定义自定义环境变量,并期望将它们传递给docker容器” 比如,“Elastic Beanstalk不提供特定于DOCKER的配置选项”。。。这并不一定意味着没有环境变量传递给Docker容器 例如,总是通过的是。。。RAILS\u SKIP\u迁移、RAILS\u SKIP\u资产\u编译、BUNDLE\u WITHOUT、RACK\u ENV、RAILS\u ENV。等等对于Ruby容器,假设您正在运行Ruby应用程序,因此设置一些合理的默认值以确保它们始终可用 另一方面,对于Docker容器,它似乎是打开的。您可以指定所需的任何变量。。。他们对您正在运行的内容、Rails(Ruby)、Django(Python)等不做任何假设。。。因为它可以是任何东西。他们事先不知道您要运行什么,因此很难设置合理的默认值。我需要在使用Elastic Beanstalk运行docker时传递环境变量,但不允许将此信息放入dockrun.aws.json中。 以下是解决此方案的步骤:
选项\u设置:
-选项名称:变量名称
值:变量值
要查看结果,请在EC2实例内执行命令“docker inspect CONTAINER_ID”,并将看到环境变量。每当启动容器时,这些都可用吗?例如,如果我重新启动我的环境(而不是重新部署)?是的,它们是可用的