如何在Docker中使用dynamic生成的Nginxconfiguration文件?

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

我没有把应用程序保留在Docker中。

我的应用程序dynamic创buildNginxconfiguration。 最初,这些Nginxconfiguration被放置在我的应用程序中的一个标准目录中。 我已经configurationNginx从这个目录中读取所有的* .conf文件,一切都很好。

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

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

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

你可以运行你的容器安装相同的音量。
请参阅“ Docker卷 ”。

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

请参阅作为示例卷configuration参考 :

 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: 

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

所有艰难的VonC解决scheme都可以工作,这可能会使您的部署过程复杂化,因为这两个容器需要位于同一台服务器上,并共享一个持续的卷,这可能会使状态pipe理和启动复杂化,除非您还在生产中使用Docker组合,你还需要服务发现服务来find对方,如果你只是试图build立一个单一的服务原型,你可能不需要。

你可以select使用supervisord在同一个容器中运行nginx。

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

我认为,如果nginx作为您的快速应用程序的支持angular色,并且这两个服务可以被认为是同一个微服务的一部分,那么这对您的用例可能是有意义的。