Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/rust/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Environment variables 在Docker中访问弹性Beanstalk环境属性_Environment Variables_Docker_Amazon Elastic Beanstalk - Fatal编程技术网

Environment variables 在Docker中访问弹性Beanstalk环境属性

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]。有人有过这种软件组合的经验吗?我只需

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

[1]


[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中。 以下是解决此方案的步骤:

  • 创建一个文件夹.ebextensions
  • 在文件夹中创建.config文件
  • 填写.config文件:
  • 选项\u设置:

    -选项名称:变量名称
    值:变量值

  • 将文件夹.ebextensions文件与dockrun.aws.json plus Dockerfile一起压缩,并将其上载到Beanstalk

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

    每当启动容器时,这些都可用吗?例如,如果我重新启动我的环境(而不是重新部署)?是的,它们是可用的