扩展码头服务3

我为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中不再是这种情况。

您可以将公共环境变量提取到一个env文件。

此后,您可以在撰写文件中使用env_file配置选项。

 -> cat common.env VAR2=val2 VAR3=val3 

您仍然可以使用environment配置选项来传递/覆盖common.env指定的环境变量以外的环境变量。

 myotherservice: build: context: ./myservice command: ./somethingelse env_file: ./common.env environment: VAR1: "val1-bis" 

参考