【发布时间】:2020-06-10 02:31:09
【问题描述】:
我目前正在开发一个完整的 typescript 应用程序:Express 用于服务器,React 用于客户端。文件夹结构如下所示:
.
├──client/ <-- React app
├──server/ <-- Express server
├──dist/ <-- build result goes into this folder
├──package.json <-- top-level files
显然,我的应用程序需要一个扩展的构建阶段来创建dist 文件夹。首先转译服务器,然后构建 React 应用程序,将 React 应用程序的构建结果复制粘贴到 dist 文件夹中,以使 Express 将它们作为静态文件提供。
我的问题是,如果我想使用 Docker 部署这个应用程序,我应该什么时候进行这个构建阶段。
首先,我可以在我的环境中构建应用程序,然后制作一个仅包含依赖项和 dist 文件夹的 docker 映像。但感觉我并没有真正将我的应用容器化。
或者我可以将client 和server 文件夹复制到我的docker 镜像中,然后在镜像中构建应用程序。但是通过这种方式,我必须在图像中安装所有的开发依赖项(如@babel/... 或@types/... 模块),感觉也不对。
所以我想问一下,以上两种方法中哪一种更适合使用 Docker 构建和部署我的应用程序。如果您认为两者都是错误的并且可以提出任何新的更好的策略,那也很好。
提前致谢!
【问题讨论】:
标签: node.js reactjs typescript docker express