docker - 跨容器重用配置
问题描述
将配置传递并重新用于 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
:
从文件中添加环境变量。可以是单个值或列表。
把它放进去,比如说.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
推荐阅读
- python - 从 Python 中的部分行读取 base64
- html - 单击选择元素时滚动到预定义选项不起作用
- java - 使用 WireMock 进行 Junit 测试抛出 404 未找到预期
- ios - 如何继承 NSFetchedResultsController?
- laravel - 如何将自定义中间件添加到 Laravel Nova
- jestjs - 开玩笑,一个测试中的数据流向另一个
- kubernetes - 即使获得授权,DNS 查找仍会被阻止
- android - 滑动时从 recyclerview 中删除项目时,恢复和删除选项不会立即显示。它仅显示何时再次创建呼叫
- laravel - 使用 2 个不同的表登录身份验证
- c++ - 将 push_back 用于向量
> 在 C++ 中正确使用 for & while 循环?