【问题标题】:Docker angular app containers hosted by a Nginx container ideas由 Nginx 容器思想托管的 Docker Angular 应用程序容器
【发布时间】:2019-01-11 18:46:59
【问题描述】:

A计划

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

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

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

B计划

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

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

谢谢。

【问题讨论】:

  • 不确定是否清楚地了解您想要做什么...我只是猜想您想托管 Angular 应用程序。由于 Angular 应用程序只不过是静态内容(如果您不使用服务器端渲染),您可以托管它,例如在 AWS S3 存储桶中为您完成所有扩展和缓存工作,部署也​​同样简单。
  • 是的,我知道这是静态文件,这就是为什么我不知道如何处理它以及如何执行更新。
  • @Ludwig 如果我有多个卷,我该如何更新它们?

标签: angular docker nginx docker-compose jwilder-nginx-proxy


【解决方案1】:

A计划'

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

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

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

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

【讨论】:

  • 哇,这个 traefik 有 web ui,很好,我需要一些时间来掌握所有这些,我只是想在每个 Angular 应用程序中使用 nginx。所以我 1. 构建一个图像并将其发布到我的本地注册表中。 2. 我重建了包含应用程序的容器,对吗?
  • 但与此相比:github.com/jwilder/nginx-proxy ?而不是 traefic,因为我需要让我们加密
  • “所以我 1. 构建一个映像并将其发布到我的本地注册表中。2. 我重建具有该应用程序的容器,”我想我不明白你的问题。
  • 对不起,让我改写一下(我之前是在节省空间:P)。 1. AppService1 有我的角度自定义图像(使用 Dockerfile),我重建图像并推送到我的自定义 docker 注册表。 2. 我在服务器上拉取并重建我的容器。这是一个好的更新程序吗?
  • 正确。本地构建,推送,拉取服务器,运行新镜像(替换旧容器)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-08-28
  • 1970-01-01
  • 2020-08-31
  • 2021-07-22
  • 1970-01-01
  • 1970-01-01
  • 2017-03-08
相关资源
最近更新 更多