【发布时间】:2018-07-16 09:47:51
【问题描述】:
我会使用环境文件在 docker compose 文件中设置一些变量,以选择要使用的环境:dev、qualif、prod,...但是变量替换无法按我的预期工作。这是我的 docker compose 文件的摘录:
version: '3.4'
x-propertyfile: &propertyfile dev.env
services:
registry:
image: sensor-registry
env_file: *propertyfile
container_name: ${REGISTRY_NAME}
...
other-services:
...
还有我的 dev.env 文件:
REGISTRY_NAME=registry
... other values
但是当我启动我的 docker-services 时
docker-compose -f compose-file.yml up
我收到了消息:
WARNING: The REGISTRY_NAME variable is not set. Defaulting to a blank string.
我尝试设置没有自定义属性的 env_file :
services:
registry:
image: sensor-registry
env_file: dev.env
container_name: ${REGISTRY_NAME}
那行不通。同理,如果我直接设置我的变量:
services:
registry:
image: sensor-registry
environment:
- REGISTRY_NAME: registry
container_name: ${REGISTRY_NAME}
但是,如果我使用默认的 env 文件 (.env),那就可以了。我可以通过以下方式启动我的服务:
cat dev.env > .env && docker-compose -f composefile.yml up
但我想了解为什么变量替换不适用于 env_file。我哪里错了?
谢谢
【问题讨论】:
标签: docker docker-compose