我在Bitbucket上有两个存储库 - 后端 (使用Laravel作为API和入口点) 和 前端 (主应用程序前端 - VueJs应用程序)。我的目标是设置持续部署,因此每当将某些内容推送到其中一个存储库的主分支(或我选择的其他分支),它都会触发某些操作,以便整个应用程序构建并达到AWS EC2服务器。
我已经考虑/尝试了以下内容:
1. AWS CodePipeline 和/或 CodeDeploy。这看起来像是一个很好的选择,因为服务器也在AWS中。但是,它没有开箱即用的 Bitbucket 支持,因此它必须走 Bitbucket Pipeline -> AWS Lambda -> AWS S3 -> AWS CodePipeline / CodeDeploy -> AWS EC2 的路线。这似乎是一个非常漫长的旅程,我不确定这是否是一个好做法。 2. 使用 Laravel Forge 部署 Laravel 应用程序,并添加额外的步骤来构建 VueJS 应用程序。这似乎是一个非常基本的解决方案,但是构建过程似乎会失败,因为它只是花费了很长时间,并且在没有错误的情况下崩溃(而我可以在本地机器或其他托管在其他地方的服务器上运行完全相同的过程)。我不确定这是否与服务器的配置方式、Forge 运行部署脚本的方式或服务器过于薄弱有关。
我的主要问题是如何部署这些组件的应用程序最佳实践是什么?我已经阅读了许多有关部署 NodeJS 应用程序或 Laravel 应用程序的教程/文章,但并没有得到关于像这样的场景的好信息。
是在本地构建前端应用程序并对构建后的 JS 文件进行版本控制更好呢?还是应该在 Bitbucket 中创建一个 Pipeline 来构建应用程序然后部署它呢?还是最好只对源文件进行版本控制并将整个构建过程作为部署过程的最后一步留给托管应用程序的服务器执行?也有一些文章建议将整个前端应用程序托管在 S3 存储桶中 - 这样做是否也是不好的做法?
感谢任何帮助和资源!
我已经考虑/尝试了以下内容:
1. AWS CodePipeline 和/或 CodeDeploy。这看起来像是一个很好的选择,因为服务器也在AWS中。但是,它没有开箱即用的 Bitbucket 支持,因此它必须走 Bitbucket Pipeline -> AWS Lambda -> AWS S3 -> AWS CodePipeline / CodeDeploy -> AWS EC2 的路线。这似乎是一个非常漫长的旅程,我不确定这是否是一个好做法。 2. 使用 Laravel Forge 部署 Laravel 应用程序,并添加额外的步骤来构建 VueJS 应用程序。这似乎是一个非常基本的解决方案,但是构建过程似乎会失败,因为它只是花费了很长时间,并且在没有错误的情况下崩溃(而我可以在本地机器或其他托管在其他地方的服务器上运行完全相同的过程)。我不确定这是否与服务器的配置方式、Forge 运行部署脚本的方式或服务器过于薄弱有关。
我的主要问题是如何部署这些组件的应用程序最佳实践是什么?我已经阅读了许多有关部署 NodeJS 应用程序或 Laravel 应用程序的教程/文章,但并没有得到关于像这样的场景的好信息。
是在本地构建前端应用程序并对构建后的 JS 文件进行版本控制更好呢?还是应该在 Bitbucket 中创建一个 Pipeline 来构建应用程序然后部署它呢?还是最好只对源文件进行版本控制并将整个构建过程作为部署过程的最后一步留给托管应用程序的服务器执行?也有一些文章建议将整个前端应用程序托管在 S3 存储桶中 - 这样做是否也是不好的做法?
感谢任何帮助和资源!