正如注释中的答案所提到的,没有办法这样做,因为它直接被编码到源代码中
code
使用
.env
.
第一种方法与
docker-compose
override
文件夹。
所以在你的情况下你可以有你的基地
docker-compose.yml
像这样的文件:
version: '2'
services:
micro-service:
image: some/micro-service:1.0.0
ports:
- "8085:8085"
然后你可以定义
docker-compose-dev.yml
文件:
version: '2'
services:
micro-service:
image: some/micro-service:dev
env_file:
- ../all-variables/dev/micro_service.env
$ docker-compose up -f docker-compose.yml -f docker-compose-dev.yml up
如果这样做,则
docker-compose-dev.yml文件
将重写中的
docker-compose.yml文件
. 所以不用图像
some/micro-service:1.0.0
docker-compose-dev.yml文件
.
第二种方法是
docker-app
基本上你会创造一个
dockerapp
version: 0.0.1
name: app
---
version: '2'
services:
micro-service:
image: some/micro-service:${SERVICE_VERSION}
env_file:
- ../all-variables/${PROFILE}/micro_service.env
ports:
- "8085:8085"
---
SERVICE_VERSION: latest
PROFILE: default
如果你把你的
.env环境
.yml
使用正确的变量呈现compose文件
docker-app
.
docker-app render -f dev.yml | docker-compose -f - up