【发布时间】:2019-11-29 16:07:06
【问题描述】:
我有 3 个撰写文件覆盖,用于开发、QA、暂存环境。 我有一台服务器,我必须在那里为 QA 和 Staging 环境托管/运行容器(完全独立!!。独立的容器、网络和卷)。
在每个 compose 文件覆盖中,我都有不同的卷名、网络名、映像名、容器名,所有这些都由特定于环境的 .env 文件控制。
当我运行 docker-compose -f "docker-compose.yml" -f "docker-compose.qa.yml" up -d 时,它会创建 QA 环境映像并运行名称为 QA 的容器。
当我运行 docker-compose -f "docker-compose.yml" -f "docker-compose.staging.yml" up -d 时,它会创建 Staging 环境映像并运行其中包含名称 Staging 的容器。
但我无法同时运行两者。
端口绑定也由.env 文件控制,并且因环境而异。
(我可以指定在docker-compose up 命令期间必须使用的.env 文件)
services:
service1:
networks:
- dev
volumes:
- "vol_service1:/some/path/to/container"
service2:
networks:
- dev
volumes:
- "vol_service2:/some/path/to/container"
service3:
networks:
- dev
volumes:
- "vol_service3:/some/path/to/container"
service4:
networks:
- dev
volumes:
- "vol_service4:/some/path/to/container"
networks:
dev:
driver:bridge
volumes:
vol_service1:
vol_service2:
vol_service3:
vol_service4:
我正在使用 Docker for Windows,以下是详细信息:
Client: Docker Engine - Community
Version: 18.09.2
API version: 1.39
Go version: go1.10.8
Git commit: 6247962
Built: Sun Feb 10 04:12:31 2019
OS/Arch: windows/amd64
Experimental: false
Server: Docker Engine - Community
Engine:
Version: 18.09.2
API version: 1.39 (minimum version 1.12)
Go version: go1.10.6
Git commit: 6247962
Built: Sun Feb 10 04:13:06 2019
OS/Arch: linux/amd64
Experimental: false
【问题讨论】:
-
什么具体不起作用?您能否编辑问题以拥有一个启动一个容器的
docker-compose.yml文件,以及匹配的开发和生产环境文件,但您不能同时启动这两个文件? -
是的,我不能在同一台机器上同时运行 2 个环境。
标签: docker docker-compose dockerfile