跨容器重用配置

reusing configs across containers

将配置传递并重新用于 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

看看env_file:

Add environment variables from a file. Can be a single value or a list.

把这个放进去,比方说,.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