启动项目 cloud/production (Node.js + Vue.js)

Launching project to cloud/production (Node.js + Vue.js)

前段时间开始了一个后端Node.js,前端Vue.js的项目。我在执行我的开发项目时从未遇到过任何困难。

我知道 Vue.js 可以生成 dist 文件夹,但我不知道如何使用它。

现在我正在尝试用我的项目创建一个 docker 图像,但我对它的结构应该如何工作有疑问,我应该为后端创建一个图像,为前端创建另一个图像- 结束,即使有可能,建议做什么?使用 docker 图像,我打算在 Google Cloud 上启动项目。

我也对数据库的问题有疑惑,是不是也应该在同一个docker镜像里,还是应该和后端分开?

This is my project structure

这取决于您的预期流量。如果你期望更高的负载,水平扩展建议将它们放在单独的图像中,因为这样你可以分别扩展前端和后端。

前端

无论您是否使用 CI/CD,在构建您的前端图像时,您想要在前端周围使用 Web 服务器,有多种选择,选择您最知名的(Apache httpd 或 Nginx 等) .如果您使用的是 vue-router,请确保将您的重写配置为将所有内容发送到 index.html,否则您的路由将无法工作。要在 dockerfile 中完成,您将 dist 输出复制到您的 html 根目录。

数据库

关于数据库,将其放在同一个容器中意味着如果后端或前端由于任何原因出现故障,您的数据库也会出现故障。不要那样做。

将它放在同一个图像中,但 运行 作为一个单独的容器可能会起作用,尽管实现这一点可能非常乏味,老实说,我真的看不出有什么意义。只需使用专用的数据库映像并单独部署即可。