【发布时间】:2020-12-26 07:27:28
【问题描述】:
我想知道一些(可能)奇怪的解决方案来部署我的应用程序,通常我有两个Dockerfiles,其中一个专用于基于react 的前端,具有多阶段构建以使用@ 987654324@ 作为静态部署,第二个基于pm2 的运行时用于我的node 应用程序。
我真的很想避免node 提供静态文件,因为它无效,我想知道如何将我的应用程序部署为单个 Docker 映像,因为在这种情况下,我想分发它,是这可能吗?
我认为的解决方案是为react 和node 创建多阶段构建,我将在后台运行node 应用程序并启动nginx 进程,它将API 代理到{url}/api/*是不错的解决方案 IMO,但我想听到有人有类似的想法来做这样的事情。
【问题讨论】:
-
如果它符合您的需要,您可以run multiple services in a container。
-
我会将 React 应用程序编译为静态文件并让 something 为这些文件提供服务;我宁愿让 Node 后端为静态文件提供服务,而不是尝试将多个进程填充到一个容器中。多阶段构建并不能帮助您绕过 Docker,基本上每个容器运行一个进程。
-
我搞砸了建筑,这个问题似乎无效。我要归档的是 MVC 架构,其中 API 和客户端在一个应用程序中进行解析,我发现了一个很好的
node框架,它允许我们做这样的事情,称为meteor。 -
在
Dockerfile中我认为应该没有两个进程正在运行,所以我只是研究了不应该以这种方式完成,因为当我有SPA和API时应该是两个容器,如果我将react开发为MVP应用程序结合ex。express可以在一个容器中构建应用程序,但我不喜欢这种方法,因为express和react因为视图控制器很混乱,性能确实低于SPA+API架构。 -
无论如何,这就是你们的回应,我会尝试为我的问题写一个答案并将其标记为已解决,因为它不再相关。也许将来有人会尝试做这样的问题,这会有所帮助。