【发布时间】:2020-10-13 14:44:44
【问题描述】:
有没有办法将 docker-compose.yml 中的环境变量转储到给定容器上的文件中?
例子:
version: "3"
services:
api:
image: registry.gitlab.com/my-api
environment:
- TOKEN=123
- DB_NAME=db
我想在docker-compose run -d 命令之后在api 容器内自动创建一个.env 文件。
【问题讨论】:
-
您是希望获得流程开始时的完整环境,还是只是 Compose 级别的覆盖?是否需要考虑
env_file:等来源和来自宿主环境的传递? -
@DavidMaze 我只需要 Compose 级别的覆盖,就像示例中的 2 个变量一样。我不需要考虑
env_file选项,只需要考虑docker-compose.yml文件中的环境变量 -
我可能会尝试使用像
yq这样的工具从 YAML 中提取它(虽然我手头没有食谱),或者使用你喜欢的语言的 YAML 解析库。跨度> -
@DavidMaze 以及如何将提取的内容写入容器中的文件?
-
你的实际目标是什么?这些值将在过程环境中;为什么你需要它们在一个文件中?您可以绑定安装配置文件而不是(或除了)设置环境变量吗? (我错过了“在容器中”的细节。)
标签: docker docker-compose environment-variables