Я создал службу для 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.
EDIT: в октябре 2017 года поля дополнений были добавлены в синтаксис 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"