我有3个补充文件,用于开发、QA、暂存环境。我有一个服务器,在那里我必须为QA和Staging环境托管/运行容器(完全分开!! 分离的容器、网络和卷)。
在每个补充文件中,我有不同的卷名称、网络名称、镜像名称和容器名称,所有这些都由特定于环境的.env文件控制。
当我运行"docker-compose.yml" -f "docker-compose.qa.yml" up -d时,它会创建QA环境映像并运行其中名为QA的容器。
当我运行"docker-compose.yml" -f "docker-compose.staging.yml" up -d时,它会创建Staging environment images并运行其中名为Staging的容器。但是我无法同时运行两者。端口绑定也受.env文件控制,并且对于每个环境而言都是不同的。
(我能够在docker-compose up命令期间指定要使用的.env文件)
在每个补充文件中,我有不同的卷名称、网络名称、镜像名称和容器名称,所有这些都由特定于环境的.env文件控制。
当我运行"docker-compose.yml" -f "docker-compose.qa.yml" up -d时,它会创建QA环境映像并运行其中名为QA的容器。
当我运行"docker-compose.yml" -f "docker-compose.staging.yml" up -d时,它会创建Staging environment images并运行其中名为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
文件来启动一个容器,同时匹配开发和生产环境文件,但你无法同时启动它们吗? - David Maze