我正在使用Nginx和ExpressJS(NodeJS)开发应用程序,我正在使用Docker(使用docker-compose
)
我没有写过保留Docker的应用程序。
我的应用程序动态创建Nginx配置。最初,这些Nginx配置放在我的应用程序中的标准目录中。我已经将Nginx配置为从该目录中读取所有* .conf文件,一切都很顺利。
现在我正在使用Docker,我使用了两个不同的容器:一个用于Nginx,另一个用于我的应用程序。
问题:如何将生成的配置文件从一个容器移动到另一个容器?</ p>
有没有更好的方法来实现这一目标?
答案 0 :(得分: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 :(得分:1)
所有棘手的VonC解决方案都可以运行,它可能会使您的部署过程变得复杂,因为两个容器都需要位于同一台服务器上并共享一个持久卷,这可能会使状态管理和启动变得复杂,除非您在生产中使用docker compose此外,您还需要服务发现服务才能找到彼此,如果您只是尝试对单个服务进行原型设计,则可能不需要这些服务。
您可以选择使用supervisord在同一个容器中与快递应用程序一起运行nginx。
以下是docker文档中有关如何执行此操作的参考: https://docs.docker.com/engine/admin/multi-service_container/
我认为如果nginx作为您的快速应用程序的支持角色,这对您的用例有意义,并且这两种服务都可以被视为同一微服务的一部分。