首页 > 解决方案 > 跨容器重用配置

问题描述

将配置传递并重新用于 docker 容器的行业惯例是什么,一些配置很常见,而一些配置具有自定义值。例如。

注意产品容器有一个自定义配置参数。My_CUSTOM_CONFIG

customer:
  image: node
  build:
    context: ./Customer
    dockerfile: Dockerfile
  environment:
    DATABASE_HOST: database
    DATABASE_NAME: MyDB
    DATABASE_USER: myusername
    DATABASE_PASSWORD: mypassword
    SERVICE_PORT: 80
  depends_on:
    - database

product:
  image: node
  container_name: product
  restart: on-failure
  build:
    context: ./Product
    dockerfile: Dockerfile
  environment:
    DATABASE_HOST: database
    DATABASE_NAME: MyDB
    DATABASE_USER: myusername
    DATABASE_PASSWORD: mypassword
    SERVICE_PORT: 80
    My_CUSTOM_CONFIG: secret
  depends_on:
    - consul
    - database

在此处输入图像描述

标签: dockerdocker-composeconfig

解决方案


看看env_file

从文件中添加环境变量。可以是单个值或列表。

把它放进去,比如说.env

DATABASE_HOST=database
DATABASE_NAME=MyDB
DATABASE_USER=myusername
DATABASE_PASSWORD=mypassword
SERVICE_PORT=80

然后用在docker-compose.yml

customer:
  image: node
  build:
    context: ./Customer
    dockerfile: Dockerfile
  env_file: .env
  depends_on:
    - database

product:
  image: node
  container_name: product
  restart: on-failure
  build:
    context: ./Product
    dockerfile: Dockerfile
  env_file: .env
  environment:
    My_CUSTOM_CONFIG: secret
  depends_on:
    - consul
    - database

推荐阅读