我目前正在使用atlassian bamboo构建服务器(基于云,使用aws),并有一个初始任务,只是做一个作曲家安装。
这个单一的任务可能会花费相当多的时间,当开发人员多次提交构建服务器4构建所有下载依赖项(这些不是并行的)时,这可能是一个痛苦。
我希望加快这个过程,但无法找出一种方法,其中保存依赖关系到一个共同的位置,以跨多个构建使用,仍然允许应用程序按预期运行(laravel)
答案
将composer.lock
从.gitignore
中移除
解释
当你第一次运行compose install
时,composer必须检查你所有的依赖项(以及它们的依赖项等)或兼容性。遍历整个依赖树是非常昂贵的,这就是为什么它需要这么长时间。
在计算出所有的依赖项之后,composer将它使用的确切版本写入composer.lock
文件,以便随后的composer install
命令不必花费那么多时间运行整个图。
如果你提交你的composer.lock
文件,它会出现在你的竹服务器上。composer install
命令将waaaayy更快。
无论如何,提交
composer.lock
都是最佳实践。引用文档:
将应用程序的
composer.lock
(连同composer.json
)提交到版本控制。这很重要,因为
install
命令检查是否存在锁文件,如果存在,它就下载那里指定的版本(不管composer.json
说什么)。这意味着任何安装项目的人都将下载依赖项的完全相同的版本。您的CI服务器、生产机器、团队中的其他开发人员,以及所有东西和每个人都运行在相同的依赖项上,这减少了仅影响部署的某些部分的bug的可能性。