gpt4 book ai didi

docker - 在 docker-compose 3 中扩展服务

转载 作者:IT老高 更新时间:2023-10-28 12:45:09 24 4
gpt4 key购买 nike

我为 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"

最佳答案

使用 YAML 很容易:

version: "3"

services:
myservice: &myservice
build:
context: ./myservice
command: ./something
environment: &myservice_environment
VAR1: "val1"
VAR2: "val2"
VAR3: "val3"

myotherservice:
<<: *myservice
environment:
<<: *myservice_environment
VAR1: "val1-bis"

the doc regarding extension-fields

关于docker - 在 docker-compose 3 中扩展服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45279662/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com