如何在受限环境中使用作曲家部署模块


How to deploy modules with composer in a restricted environment

我正在启动一个带有内联网托管的项目。由于传出流量的限制,我无法通过引用composer.lock文件对作曲家(如git pull && composer.phar install)使用通常的部署策略。但是,添加 Intranet 远程存储库并使用类似 git push intranet master 的东西是可能的。

到目前为止,我发现了两种管理这种可能性:

  1. 不要将.gitignore添加到vendor/路径,并将此文件夹中的所有内容与项目一起提交。
  2. 使用 composer.phar archive 生成.phar存档(误读文档)
由于这些解决方案

似乎不是推荐的部署解决方案,我的问题是:这些解决方案的主要缺点和常见问题是什么?如何避免这些问题?

有很多方法可以部署 laravel 应用程序,以确定哪一种是要走的路。

但请记住以下几点:

  • 您可能希望先缩小/连接css/sass/less/js文件
  • 您肯定要上传文件
    • 从本地推送到服务器
    • 从存储库拉取服务器
  • 您可能希望在服务器上每次部署后运行php artisan migrate
  • 您可能希望在部署后更改远程服务器上的某些文件权限

如果你想要一个完全自动化的部署,你将需要一个好的计划,你的项目需要哪些任务。它可能在几个项目上有所不同。

有许多工具可以使其中一些步骤更容易,也有许多如何使用它们的教程。仅举几例:

  • 拉拉维尔的远程组件
  • 火箭手
  • 卡皮斯特拉诺
  • 咕噜

如果您只想将文件"上传"到远程服务器而无需进一步的自动化任务,则可以使用任何同步工具(如rsync或任何ftp同步工具),即使winscp具有脚本引擎将文件同步到远程服务器。

您发现找到正确的部署方法并不容易,并且在很大程度上取决于您的环境和项目。最后,我会退出在 git 存储库中包含vendor/。这使得版本控制非常丑陋。