【问题标题】:How to deploy modules with composer in a restricted environment如何在受限环境中使用 composer 部署模块
【发布时间】:2015-12-08 01:42:29
【问题描述】:

我正在启动一个使用 Intranet 托管的项目。由于对传出流量的限制,我不能通过参考composer.lock 文件来使用像git pull && composer.phar install 这样的作曲家的常用部署策略。不过,添加 Intranet 远程存储库并使用 git push intranet master 之类的东西是可能的。

到目前为止,我发现了两种解决方法:

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

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

【问题讨论】:

    标签: php composer-php phar


    【解决方案1】:

    部署 laravel 应用程序的方法有很多种,可以说哪一种是正确的方法。

    但请记住一些要点:

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

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

    有许多工具可以让这些步骤中的某些步骤变得更容易,并且还有许多如何使用它们的教程。仅举几例:

    如果您只想将文件“上传”到远程服务器而不需要进一步的自动化任务,您可以使用任何同步工具,如 rsync 或任何 ftp 同步工具,甚至 winscp 都有脚本引擎将文件同步到远程服务器。

    您会发现,找到正确的部署方式并不容易,而且很大程度上取决于您的环境和项目。最后我会放弃在 git repo 中包含vendor/。这使得版本控制真的很难看。

    【讨论】:

    • 感谢您的详细解答。但我不打算使用 laravel,虽然它是一个不错的框架,但不适合我当前的项目。不知道rocketeer,不错的工具。
    • 糟糕,当您阅读许多与 laravel 相关的问题时会发生这种情况 :) 然而,无论您使用什么框架,您都将获得相同的分数。即使您从头开始编写应用程序,您也可能必须在部署文件之前/之后缩小脚本或执行其他任务。您的部署策略很大程度上取决于您的项目类型和环境。
    • 你写的一切都是对的,但只有你的最后一句话在一定程度上回答了我的问题。这不是我的第一次部署,主要区别在于无法访问公共网络的内网托管。但我可以转移一个 GIT 回购。远程工具将不起作用。
    猜你喜欢
    • 1970-01-01
    • 2023-03-11
    • 2019-03-14
    • 2020-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多