如何为 docker compose 服务指定多个“env_files”?

目前我已经设置了我的服务,如下所示。

version: '3'
services:
  gateway:
    container_name: gateway
    image: node:lts-alpine
    working_dir: /
    volumes:
      - ./package.json:/package.json
      - ./tsconfig.json:/tsconfig.json
      - ./services/gateway:/services/gateway
      - ./packages:/packages
      - ./node_modules:/node_modules
    env_file: .env
    command: yarn run ts-node-dev services/gateway --colors
    ports:
      - 3000:3000

所以我指定了一个 env_file 。但现在我想传递多个 .env 文件。

不幸的是,以下是不可能的:

    env_files:
       - .env.secrets
       - .env.development

有没有办法将多个 .env 文件传递​​给 docker-compsoe 中的一项服务?

stack overflow How to specify multiple "env_files" for a docker compose service?
原文答案

答案:

作者头像

您可以在 env_file 选项上指定多个 env 文件(不带 s )。

例如:

version: '3'

services:
  hello:
    image: alpine
    entrypoint: ["sh"]
    command: ["-c", "env"]
    env_file:
      - a.env
      - b.env