1

所以我了解到,您可以将相同的 docker-compose 文件用于 docker-machine 的本地开发和使用 docker swarm 的生产环境,这很棒,您还可以共享相同的 docker-compose 文件并为生产添加特定配置/本地环境。

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

4

1 回答 1

1

Docker compose 有针对不同环境 compose files Multiple Compose files的解决方案。您基本上将差异提取到子撰写文件中,并且在运行时可以合并撰写文件:

码头工人-compose.yml

version: '3'
services:
  redis:
    ...
  node:
     ...
  nginx:
     ...

docker-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
于 2018-01-03T15:01:05.823 回答