干船坞 - 组成

adr*_*334 7 dry docker-compose

我正试图找到一种更干的方式来使用docker-compose env.

搬运工-撰写-base.yml

base:
    image: reactjs_web
    volumes:
        - src:/reactjs/src
        - bin/server:/reactjs/bin/server
        - config:/reactjs/config
Run Code Online (Sandbox Code Playgroud)

搬运工-撰写-prod.yml

svr:
  extends:
    file: docker-compose-base.yml
    service: base
  command: npm run prod:deploy
  ports:
    - "8081:8081"
  environment:
    NODE_ENV: production
    PORT: "8081"
    CLTPORT: "8082"

clt:
  extends:
    file: docker-compose-base.yml
    service: base
  command: npm run prod:deploy:clientside
  ports:
    - "8082:8082"
  environment:
    NODE_ENV: production
    PORT: "8082"
Run Code Online (Sandbox Code Playgroud)
  • 端口和env端口是等于的
  • 有没有办法将clt端口引用到svr容器?

Dev*_*Dan 2

Docker环境文件

使用.env文件并在两个容器中引用它。这将确保您只需将这些设置存储在一个位置。

Compose 支持在名为 .env 的环境文件中声明默认环境变量,该文件位于执行 docker-compose 命令的文件夹(当前工作目录)中。

Compose 期望 env 文件中的每一行都采用 VAR=VAL 格式。以 # 开头的行(即注释)将被忽略,空行也是如此。

撰写文件集成:

env_file: .env

env_file: 
  - ./common.env
  - ./apps/web.env
  - /opt/secrets.env
Run Code Online (Sandbox Code Playgroud)

Docker Compose 文件参考 - env_file

Docker Compose 环境文件文档