0

A计划

  1. 为每个 Angular 应用程序构建一个 docker 镜像
  2. 可能在每个角度应用程序的单独容器中独立使用 docker 图像
  3. 一个 Nginx 容器,将托管所有可插拔容器

所以,第 1 步和第 2 步是直截了当的,但是,使容器可插入 Nginx 的部分对我来说不是很清楚。我的主要计划是将每个应用程序作为单独的服务,这样当我推送更改时,我可以重新启动目标服务,而不是整个平台。

任何想法如何使容器可插入或一些不同的方法?

B计划

要将所有应用程序放入单独的卷中,例如附加到 Nginx 容器的 vol-ngapp1、vol-ngapp2,但是,我将如何执行更新过程?- 我需要重新启动整个容器还是什么?

需要计划 C :) 或其他东西直到 Z :D。

谢谢。

4

1 回答 1

1

计划A'

  1. 为每个 Angular 应用程序构建一个 docker 镜像,全部由它们自己的 nginx 提供服务
  2. 在同一个网络中启动它们
  3. 在同一个网络中,启动一个 nginx 容器N作为反向代理
  4. 要更新,在启动新服务后,只需编辑 conf 文件N并热重载

该解决方案使用多个 nginx,但我认为它是最可插拔和可扩展的解决方案。

在 Step3 中,nginx 可以替换为具有更好服务发现能力的其他反向代理(例如 traefik),因此您不必手动编辑配置文件。

计划 B 不如 A' 那样可插拔,因为如果您有一个新应用程序在线,您无法在不停机的情况下将卷附加到正在运行的容器。但是,如果您只想更新现有项目(只需编辑卷)就可以了。

于 2019-01-11T10:46:59.733 回答