使用Docker容器的MEAN Stack

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

新的...

我试图了解是否应该使用3个或2个Docker容器部署现代MEAN应用程序:

选项1:Express Server作为容器+ Mongo DB作为容器

选项2:所有三个作为单独的Docker容器

第二个选项听起来像是相应的路径,因此您可以更新堆栈的任何部分,而不必删除其他组件(如果您不想这样做)。但问题是ng app容器是否需要它自己的服务器来提供ng app文件。我在Github上看到一些例子,他们正在使用来自Docker容器的ng serve -H 0.0.0.0运行ng应用程序,根据我的理解,这是一个禁忌,因为这不是一个prod ready服务器,只是webpacks dev服务器。

对我来说,如果你分别运行这三个,那么你实际上需要两个服务器,一个用于服务器应用程序(index.html,js,css等),另一个服务器用于切断后端应用程序API。

我看到如果你在一个容器中运行Express Sever + ng应用程序的优势,那么你可以使用ng app依赖项和API提供初始index.html,但是当它们更新时它们都会关闭。

这里的最佳做法是什么?

node.js angular express docker mean-stack
1个回答
2
投票

恕我直言2容器似乎是更好的解决方案,一个用于Mongo,一个用于Express。无论什么时候推送新代码,如果后端关闭,前端仍然没有意义,反之亦然。同时服务来自同一服务器的前端文件减少了处理CSRF的麻烦。

关于您的其他问题,我认为您可以将您的前端部署到AWS S3之类的东西,并且仍然只为您的后端管理一台服务器。

另外,您也可以在一个容器中完成所有操作。这取决于您的其他要求,以找出最佳架构。

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