如何在Docker中使用动态生成的Nginx配置文件?

问题描述 投票:2回答:2

我正在使用Nginx和ExpressJS(NodeJS)开发应用程序,我正在使用Docker(使用docker-compose

我没有写过保持Docker的应用程序。

我的应用程序动态创建Nginx配置。最初,这些Nginx配置放在我的应用程序中的标准目录中。我已经配置Nginx从这个目录中读取所有* .conf文件,一切都很好。

现在我正在使用Docker,我使用两个不同的容器:一个用于Nginx,一个用于我的应用程序。

问题:如何将生成的配置文件从一个容器移动到另一个容器?

有没有更好的方法来实现这一目标?

docker nginx docker-compose
2个回答
1
投票

您可以运行安装相同音量的容器。 见“Docker Volumes”。

第一个容器将生成该卷中的配置文件。 第二个容器(NGiNX)会读取它们。

Volume configuration reference为例:

version: "3"

services:
  db:
    image: db
    volumes:
      - data-volume:/var/lib/db
  backup:
    image: backup-service
    volumes:
      - data-volume:/var/lib/backup/data

volumes:
  data-volume:

这里相同的音量安装两次。


1
投票

所有棘手的VonC解决方案都可以工作,它可能会使您的部署过程变得复杂,因为两个容器都需要位于同一台服务器上并共享一个持久卷,这可能会使状态管理和启动变得复杂,除非您在生产中使用docker compose,您还需要服务发现服务才能找到对方,如果您只是尝试对单个服务进行原型设计,则可能不需要这些服务。

您可以选择使用supervisord在同一个容器中与快速应用程序一起运行nginx。

以下是docker文档中有关如何执行此操作的参考:https://docs.docker.com/engine/admin/multi-service_container/

我认为如果nginx作为您的快速应用程序的支持角色,这对您的用例有意义,并且这两种服务都可以被视为同一微服务的一部分。

© www.soinside.com 2019 - 2024. All rights reserved.