将卷挂载作为外部文件传递(docker-compose)

时间:2019-12-18 17:18:22

标签: docker docker-compose

我有一个像这样的docker-compose.yml文件:

  name:
    image: docker/container
    container_name: coolcontainer
    restart: always

    volumes:
      - ${DIR1PATH}:/storage/${DIR1}
      - ${DIR2PATH}:/storage/${DIR2}
      - ${DIR3PATH}:/storage/${DIR3}
      - ${DIR4PATH}:/storage/${DIR4}

是否可以将所有卷装载存储在单独的文件中,以便将docker-compose.yml替换为:

  name:
    image: docker/container
    container_name: coolcontainer
    restart: always

    volumes:
      ${CUSTOM_MOUNTS_FILE}

1 个答案:

答案 0 :(得分:0)

并非特别符合您的要求,但是您可以将多个撰写文件合并在一起。这些文件中的一个可能包含您的其他卷,而第一个只是您的服务定义。您的第二个文件如下所示:

version: '3'
services:
  name:
    volumes:
      - ${DIR1PATH}:/storage/${DIR1}
      - ${DIR2PATH}:/storage/${DIR2}
      - ${DIR3PATH}:/storage/${DIR3}
      - ${DIR4PATH}:/storage/${DIR4}

compose中还有扩展字段,可用于定义值,然后使用yaml锚和别名来插入值。其中的一个示例在this presentation中。