我将一些Web应用程序设置在单独的docker容器中,并使用nginx充当反向代理,以设置另一个容器。我不需要单个Web应用程序同时运行,并且我不介意(我实际上更喜欢)有多个nginx容器,每个服务一个应用程序。
我使用以下配置将其与docker-compose
一起使用:
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
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
FROM nginx:stable-alpine
ARG vhost_conf
WORKDIR /etc/nginx/conf.d
COPY $vhost_conf ./
这应该做的是将每个应用程序的特定于应用程序的虚拟主机配置复制到nginx容器中。我想如果我同时启动两个撰写文件,则会拆分出两个单独的容器。但是,当第一个容器开始正常运行时,第二个容器使nginx在第一个容器上退出。添加特定的容器名称(在示例撰写文件中注释了)无济于事。
我在做什么错?任何帮助表示赞赏。