gpt4 book ai didi

docker - 如何运行/托管 : Multiple environments on same machine with docker-compose

转载 作者:行者123 更新时间:2023-12-02 18:19:26 25 4
gpt4 key购买 nike

我有 3 个 compose 文件覆盖,用于开发、QA、暂存环境。我有一台服务器,我必须在那里为 QA 和暂存环境托管/运行容器(完全分开!!。单独的容器、网络和卷)。

在每个撰写文件覆盖中,我有不同的卷名称、网络名称、图像名称、容器名称,所有这些都由特定于环境的 .env 文件控制。

当我运行 docker-compose -f "docker-compose.yml"-f "docker-compose.qa.yml"up -d 时,它会创建 QA 环境图像并运行具有名称的容器质量检查在里面。

当我运行 docker-compose -f "docker-compose.yml"-f "docker-compose.staging.yml"up -d 时,它会创建暂存环境镜像并运行具有名称的容器在其中演出。​​

但我无法同时运行两者。端口绑定(bind)也由 .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 的文档中的一个重点。您需要指定 COMPOSE_PROJECT_NAME 环境变量,如果未指定,它将选择您的撰写文件所在的文件夹名称。只需为您的环境以不同的方式命名此环境变量,您就可以开始了。

关于docker - 如何运行/托管 : Multiple environments on same machine with docker-compose,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57133180/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com