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



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

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

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

docker-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

最新更新