在docker-compose中重复使用容器配置会导致冲突

时间:2019-01-08 22:50:47

标签: docker docker-compose

我将一些Web应用程序设置在单独的docker容器中,并使用nginx充当反向代理,以设置另一个容器。我不需要单个Web应用程序同时运行,并且我不介意(我实际上更喜欢)有多个nginx容器,每个服务一个应用程序。

我使用以下配置将其与docker-compose一起使用:

app_a_dcompose.yml

version: "3.7"

services:
    app_a:
        build:
            context: .
            dockerfile: app_aa.Dockerfile
        volumes:
            - type: bind
              source: ./volumes/share
              target: /data/share
    nginx:
        #container_name: nginx_app_a
        build:
            context: .
            args:
                vhost_conf: app_a_vhost.conf
            dockerfile: ./nginx.Dockerfile
        ports:
            - "8002:8002"
        volumes:
            - type: bind
              source: ./volumes/log
              target: /data/log

app_b_dcompose.yml

version: "3.7"

services:
    app_b:
        build:
            context: .
            dockerfile: app_aa.Dockerfile
        volumes:
            - type: bind
              source: ./volumes/share
              target: /data/share
    nginx:
        #container_name: nginx_app_b
        build:
            context: .
            args:
                vhost_conf: app_b_vhost.conf
            dockerfile: ./nginx.Dockerfile
        ports:
            - "8001:8001"
        volumes:
            - type: bind
              source: ./volumes/log
              target: /data/log

nginx.Dockerfile

FROM nginx:stable-alpine

ARG vhost_conf

WORKDIR /etc/nginx/conf.d
COPY $vhost_conf ./

这应该做的是将每个应用程序的特定于应用程序的虚拟主机配置复制到nginx容器中。我想如果我同时启动两个撰写文件,则会拆分出两个单独的容器。但是,当第一个容器开始正常运行时,第二个容器使nginx在第一个容器上退出。添加特定的容器名称(在示例撰写文件中注释了)无济于事。

我在做什么错?任何帮助表示赞赏。

0 个答案:

没有答案