我有一个EB env,且已正确部署Docker Web应用程序(导轨)。我设置了几个EB env变量,它们在容器中正确可见。现在-我希望这些EB env变量对EC2实例主机可见,以便可以在docker构建过程中使用它们。但是,它们不会暴露给docker主机,只会暴露给容器。
如何将EB env变量公开给Docker主机?
虽然这是一个难题,但是我将为遇到此问题的人发布我的解决方案。
Elastic Beanstalk Docker实例不会将环境变量公开给Docker主机。它仅对docker容器执行此操作。
如果您想在主机上获取env变量,它们位于/opt/elasticbeanstalk/deploy/configuration/containerconfiguration
。
这是一个大的JSON文件,可以很方便地违反环境变量的JSON结构。
我编写了一个小的ruby脚本来解析它,并从中提取环境变量:
require 'json'
container_config = JSON.parse(File.read('/opt/elasticbeanstalk/deploy/configuration/containerconfiguration'))
raw_vars = container_config['optionsettings']['aws:elasticbeanstalk:application:environment']
envs = ''
raw_vars.each do |raw_var|
pair = raw_var.split('=')
envs << "export #{pair[0]}=#{pair[1]}\n" if pair[1]
end
puts envs
该脚本产生了一组导出命令以控制台来设置环境变量。我做了些修改,以将ENV
命令写入到自己的Dockerfile
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句