加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

在docker-compose 3中扩展服务

发布时间:2020-12-16 03:53:19 所属栏目:安全 来源:网络整理
导读:我为docker-compose 3创建了一个使用许多环境变量的服务: version: "3"services: myservice: build: context: ./myservice command: ./something environment: VAR1: "val1" VAR2: "val2" VAR3: "val3" 现在我想添加一个使用相同环境变量值的服务,除了VAL1,

我为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"
您可以将常见环境变量提取到env文件.

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

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

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

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

参考

> https://docs.docker.com/compose/environment-variables/#the-env-file

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读