解决方法到docker运行“–env-file”提供的文件未按预期进行评估
我目前运行docker容器的设置如下: >我有一个main.env文件: # Main export PRIVATE_IP=`echo localhost` export MONGODB_HOST="$PRIVATE_IP" export MONGODB_URL="mongodb://$MONGODB_HOST:27017/development" >在我的服务文件(upstart)中,我获取此文件. /path/to/main.env 当您开始拥有需要为容器提供的越来越多的环境变量时,这会变得有点笨拙.这里有一个很好的观点,即环境变量需要在运行时解析,例如调用curl或引用其他env变量. 我希望使用的解决方案是: >使用–env-file参数调用docker run,例如: # Main PRIVATE_IP=`echo localhost` MONGODB_HOST="$PRIVATE_IP" MONGODB_URL="mongodb://$MONGODB_HOST:27017/development" >然后我的docker run命令会大大缩短到docker run –env-file = / path / to / main.env ubuntu bash(请记住,我通常有大约12-15个环境变量. 这是我遇到问题的地方,即容器内没有任何变量按预期解析.相反,我最终得到: > PRIVATE_IP =`echo localhost` 我可以通过以下方式来规避这个问题: >采购main.env文件. 我更喜欢的是让变量按预期解析. 我能找到的最接近我的问题是: –env和–env-file都设置变量,而不是替换嵌套变量.
Solomon Hykes讨论了在运行时配置容器以及各种方法.适合您的方法是将main.env从主机批量安装到容器中并进行采购. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |