【发布时间】:2017-12-29 23:38:04
【问题描述】:
我为 docker-compose 3 创建了一个使用许多环境变量的服务:
version: "3"
services:
myservice:
build:
context: ./myservice
command: ./something
environment:
VAR1: "val1"
VAR2: "val2"
VAR3: "val3"
现在我想添加一个使用相同环境变量值的服务,VAL1 除外,并且具有不同的命令:
myotherservice:
build:
context: ./myservice
command: ./somethingelse
environment:
VAR1: "val1-bis"
VAR2: "val2"
VAR3: "val3"
有什么办法可以避免docker-compose.yml文件中的环境变量重复?在 docker-compose 2 中,可以使用 extends 关键字,但在 docker-compose 3 中不再是这种情况。
编辑:2017 年 10 月,扩展字段被添加到 docker-compose 3.4 语法中:https://docs.docker.com/compose/compose-file/#extension-fields 这是正确的方法:
version: "3"
x-env:
&default-env
VAR1: "val1"
VAR2: "val2"
VAR3: "val3"
services:
myservice:
build:
context: ./myservice
command: ./something
environment: *default-env
myotherservice:
build:
context: ./myservice
command: ./somethingelse
environment:
<< : *default-env
VAR1: "val1-bis"
【问题讨论】:
-
注意:对此有一个开放的issue - 但没有人知道他们是否会对此采取任何行动;(
-
他们严重删除了最有用的功能之一......这太疯狂了
标签: docker docker-compose