
目前的方法是写一个 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 月 5 日 可以考虑在不同的 docker-compose.yaml 目录下生成不同的.env 环境文件?这样比较好管理一点。 然后在里面定义网络,ip, container 等等 |
2 dangyuluo 2017 年 11 月 5 日 你可以生成环境文件,保持 yaml 模版不变,然后在运行 docker-compose 的时候使用--env-file 参数来指定。 Elegant |