首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >运行多个停靠器-一次重写

运行多个停靠器-一次重写
EN

Stack Overflow用户
提问于 2020-03-21 22:49:21
回答 2查看 654关注 0票数 0

我有一个docker-compose.yml文件,它是为两个环境( devprod )设置的

docker-compose.yml

包含两种环境的共享配置。

代码语言:javascript
复制
version: '3.1'
services:
    homeassistant:
        restart: unless-stopped
        privileged: true
        network_mode: host

docker-compose.dev.yml

包含开发环境的配置。

代码语言:javascript
复制
version: '3.1'
services:
    homeassistant:
        image: registry.gitlab.com/addisonlynch/homeassistant/hass:dev
        container_name: hass-dev

docker-compose.prod.yml

包含生产环境的配置。

代码语言:javascript
复制
version: '3.1'
services:
    homeassistant:
        image: registry.gitlab.com/addisonlynch/homeassistant/hass:prod
        container_name: hass-prod

我可以按以下方式运行dev环境:

代码语言:javascript
复制
docker-compose -f docker-compose.yml -f docker-compose.dev.yml up

以及刺激环境:

代码语言:javascript
复制
docker-compose -f docker-compose.yml -f docker-compose.prod.yml up

这两个环境都运行得完美无缺,但是我只能让一个环境同时运行。如果我试图在dev运行时(在同一主机上)旋转prod,那么dev容器将退出,prod容器将启动(实际上是替换它们)。如何同时运行两个环境?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-03-21 23:59:24

如果你做docker-compose --help,你会看到:

代码语言:javascript
复制
 -p, --project-name NAME     Specify an alternate project name
                              (default: directory name)

这意味着,在默认情况下,当您执行docker-compose up时,组合管理您的服务作为项目的一部分,该项目以docker-compose.yml文件所在的目录名命名。由于dev & prod复合文件位于同一个目录中,并且具有相同的服务名称,因此无法将两者区分开来。

考虑到这一点,为了同时运行dev & prod环境,需要通过-p--project-name标志指定项目名称,如下所示:

代码语言:javascript
复制
docker-compose -f docker-compose.yml -f docker-compose.dev.yml -p dev_env up

另一个选项是使用COMPOSE_PROJECT_NAME环境变量,如:

代码语言:javascript
复制
COMPOSE_PROJECT_NAME=dev_env docker-compose -f docker-compose.yml -f docker-compose.dev.yml up

如果两个dev & prod都使用相同的端口,那么在您的情况下潜在的问题可能是host网络模式。在这种情况下,你第二次开始的那个就不能开始了。

票数 3
EN

Stack Overflow用户

发布于 2020-03-21 23:58:40

正如前面提到的,here可以使用-p选项设置容器的项目名称,并使用不同的容器前缀名称多次运行它。

docker-compose -p dev

docker-compose -p prod

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60794128

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档