我有一个EB env与Docker Web应用程序(rails)正确部署.我设置了几个EB env变量,它们在容器中正确显示.现在 – 我希望这些EB env变量对EC2实例主机可见,以便我可以在docker构建过程中使用它们.但是,它们不会暴露于码头主机,只能到容器.
如何将EB env变量公开给Docker主机?
最佳答案
我遇到同样的问题,但是在执行后部署Bash脚本时需要使用环境变量.
由于jq parser可用于(当前)Amazon Linux AMI,因此我可以使用它来处理类似的东西来解析JSON,然后导出主机上的环境变量(这是从ebextensions config file摘录):
files:
"/opt/elasticbeanstalk/hooks/appdeploy/post/export_env_vars_on_host.sh":
mode: "000755"
owner: root
group: root
content: |
#!/usr/bin/env bash
echo Defaults:root \!requiretty >> /etc/sudoers
for envvar in `jq '.optionsettings | {"aws:elasticbeanstalk:application:environment"}[] | .[]' /opt/elasticbeanstalk/deploy/configuration/containerconfiguration`
do
temp="${envvar#\"}";
temp="${temp/=/=\"}";
export temp;
done