将 Laravel + Vue SPA 应用程序部署到 AWS 的最佳实践/方法

Gie*_*ius 6 deployment bitbucket amazon-web-services laravel vue.js

我有 2 个存储库驻留在 Bitbucket - 后端(Laravel 应用程序作为 API 和入口点)和前端(主应用程序前端 - VueJs 应用程序)。我的目标是设置持续部署,因此每当在 master(或我选择的其他分支)分支中的任何一个 repos 中推送某些内容时,它都会触发某些内容,以便整个应用程序构建并到达 AWS EC2 服务器。

我已经考虑/尝试了以下内容:

  • AWS CodePipeline 和/或 CodeDeploy。这看起来是一个不错的选择,因为服务器也在 AWS 中。但是,不支持开箱即用的 Bitbucket,因此必须转到 Bitbucket Pipeline -> AWS Lambda -> AWS S3 -> AWS CodePipeline/CodeDeploy -> AWS EC2。这似乎是一个非常漫长的旅程,我不确定这是否是一个好的做法。
  • 使用 Laravel Forge 部署 Laravel 应用程序,并添加额外的步骤来构建 VueJS 应用程序。这似乎是一个非常基本的解决方案,但是,构建过程似乎在那里失败,因为它只需要很长时间并且崩溃没有错误(而我可以在我的本地机器或其他地方托管的不同服务器上运行完全相同的过程)。我不确定这是否与服务器的配置方式、Forge 运行部署脚本的方式有关,或者服务器太弱而无法处理它。

我的主要问题是部署此类组件的应用程序的最佳做法是什么?我已经阅读了许多关于部署 NodeJS 应用程序或 Laravel 应用程序的教程/文章,但还没有获得有关此类场景的良好信息。

在本地构建前端应用并对构建的 JS 文件进行版本控制会更好吗?或者我应该在 Bitbucket 中创建一个管道来构建应用程序然后部署它?或者最好只进行版本控制和部署源文件,并将整个构建过程作为部署过程的最后一步,由托管应用程序本身的服务器完成?还有一些文章建议在 S3 存储桶中托管整个前端应用程序 - 这也是不好的做法吗?

感谢任何有帮助的帮助和资源!

Mwi*_*gwa 0

从声音来看,您可能想要运行两种类型的部署。

Laravel API:如果您已经在使用 Laravel Forge,那么这是部署 Laravel 应用程序的好方法,可以处理大部分流程并轻松进行服务器管理。

Vue.js 应用程序:您在这里可以做的事情很少,我个人更喜欢使用像VercelNetlify这样的提供商,他们可以让您免费部署静态站点/前端 - 成本低廉。您可以编写自定义构建步骤,但它们有很好的预设,可以立即使用。

如果您确实想将所有内容保留在 AWS 上,那么请研究如何在 AWS 上托管静态站点