【问题标题】:How to run/host: Multiple environments on same machine with docker-compose如何运行/托管:使用 docker-compose 在同一台机器上运行多个环境
【发布时间】: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


【解决方案1】:

这对我来说真的很愚蠢。我错过了 docker-compose 文档中的一个重要点。 您需要指定COMPOSE_PROJECT_NAME 环境变量,如果未指定,则它将获取您的撰写文件所在的文件夹名称。 只需为您的环境以不同的方式命名此环境变量即可。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-01-26
    • 1970-01-01
    • 1970-01-01
    • 2020-07-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多