Shō*_*un8 1 environment-variables docker docker-compose docker-swarm docker-stack
我正在尝试对docker -compose和swarm使用相同的 docker-compose.yml和.env文件。变量来自通过在启动时运行 run.sh 脚本,.env文件中应该通过 sed 解析到配置文件中。使用该docker-compose up命令时,此设置工作正常,但当我使用该docker stack deploy命令时,它们没有通过。
如何将变量传递到容器中,以便run.sh脚本在启动时解析它们?
加载.env文件是 docker-compose 的一项功能,它不是 docker CLI 的一部分。在执行部署之前,您可以在 shell 中手动加载此文件的内容:
set -a; . ./.env; set +a
docker stack deploy -c docker-compose.yml stack_name
Run Code Online (Sandbox Code Playgroud)
其他选项包括使用 docker-compose 预处理撰写文件:
docker-compose config >docker-compose.processed.yml
Run Code Online (Sandbox Code Playgroud)
或者您可以使用 envsubst 替换变量以使用已经扩展的变量创建一个撰写文件:
set -a; . ./.env; set +a
envsubst <docker-compose.yml >docker-compose.processed.yml
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2028 次 |
| 最近记录: |