Docker Swarm - 仅在本地环境中使用mongo服务

时间:2018-01-03 14:47:29

标签: docker docker-compose docker-swarm docker-swarm-mode docker-stack

所以我了解到你可以使用相同的docker-compose文件进行本地开发与docker-machine和生产环境与docker swarm,这很棒的想法,你也可以共享相同的docker-compose文件并添加特定的生产/本地环境的配置。

有人认为我找不到是一种仅在本地环境中定义服务的方法,我在本地编写包含redis / node / nginx / mongo容器的文件但是在生产中我不想使用docker for mongo,因为我使用外部服务器(Atlas / MLab),是否可以这样做,并继续使用相同的文件进行生产和放大发展?

1 个答案:

答案 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