目前的方法是写一个 docker-compose.yml 的模本文件,然后去替换里面的相关参数,例如模板文件如下:
version: '2'
services:
db:
image: mysql
container_name: $db_name
networks:
- app_net
web:
build: ./web
expose:
- "80"
- "443"
- "8080"
networks:
app_net:
ipv4_address: $web_ip
container_name: $web_name
depends_on:
- db
links:
- db
networks:
app_net:
driver: bridge
ipam:
driver: default
config:
- subnet: $subnet
gateway: $gateway
模板文件通过 python string 的 Template 进行变量替换,通过替换 subnet、gateway 以及 container_name、web_ip 的方法来生成不同的 docker-compose.yml 文件,感觉这种方式不是很优雅,有没有更好的方案呢?
1
dangyuluo 2017-11-05 11:25:58 +08:00
可以考虑在不同的 docker-compose.yaml 目录下生成不同的.env 环境文件?这样比较好管理一点。
然后在里面定义网络,ip, container 等等 |
2
dangyuluo 2017-11-05 11:28:08 +08:00 1
你可以生成环境文件,保持 yaml 模版不变,然后在运行 docker-compose 的时候使用--env-file 参数来指定。
Elegant |