所以我了解到你可以使用相同的docker-compose文件进行本地开发与docker-machine和生产环境与docker swarm,这很棒的想法,你也可以共享相同的docker-compose文件并添加特定的生产/本地环境的配置。
有人认为我找不到是一种仅在本地环境中定义服务的方法,我在本地编写包含redis / node / nginx / mongo容器的文件但是在生产中我不想使用docker for mongo,因为我使用外部服务器(Atlas / MLab),是否可以这样做,并继续使用相同的文件进行生产和放大发展?
答案 0 :(得分:0)
Docker compose为不同的环境撰写文件Multiple Compose files提供了解决方案。您基本上将差异提取到子撰写文件中,并且在运行时可以合并撰写文件:
<强>搬运工-compose.yml 强>
version: '3'
services:
redis:
...
node:
...
nginx:
...
<强>搬运工-compose.local.yml 强>
...
services:
mongo:
...
在本地运行时,执行:
docker-compose -f docker-compose.yml -f docker-compose.local.yml up -d
在部署到Swarm时,您只需执行:
docker stack deploy --compose-file docker-compose.yml