如何在 Jenkins 中缓存作曲家包

How to cache composer packges in Jenkins

我在 Jenkins 中有一个 Laravel 项目和简单的管道,它从 Docker 文件构建 Docker 图像,在其中提取代码并执行 composer install。到目前为止一切正常,但安装作曲家包需要很多时间(比如 6-7 分钟)。我试图在某个地方保留供应商目录,创建指向它的符号链接或其他东西,但到目前为止没有任何效果。我想知道是否有更好的官方方式来处理这个问题?任何人都有一些想法或经验吗?或者可能是一些不同的 CI 工具?

好的,我最终得到了两个解决方案:

  1. 我将 composer 缓存目录挂载到主机中的某个目录以加速 composer 包的安装:
dockerfile {
  filename 'Dockerfile'
  args '-v $HOME/composer_cache:/.composer/cache'
}
  1. 有(不是很明显,因为 Jenkins 面板有点乱)禁用工作区清理的选项 before/after 代码检出。可以在 "Branch Sources" 部分下的管道配置中删除这些步骤(在 "Behaviours" 上方有红色 X)。