如何在 Jenkins 中缓存作曲家包
How to cache composer packges in Jenkins
我在 Jenkins 中有一个 Laravel 项目和简单的管道,它从 Docker 文件构建 Docker 图像,在其中提取代码并执行 composer install
。到目前为止一切正常,但安装作曲家包需要很多时间(比如 6-7 分钟)。我试图在某个地方保留供应商目录,创建指向它的符号链接或其他东西,但到目前为止没有任何效果。我想知道是否有更好的官方方式来处理这个问题?任何人都有一些想法或经验吗?或者可能是一些不同的 CI 工具?
好的,我最终得到了两个解决方案:
- 我将 composer 缓存目录挂载到主机中的某个目录以加速 composer 包的安装:
dockerfile {
filename 'Dockerfile'
args '-v $HOME/composer_cache:/.composer/cache'
}
- 有(不是很明显,因为 Jenkins 面板有点乱)禁用工作区清理的选项 before/after 代码检出。可以在 "Branch Sources" 部分下的管道配置中删除这些步骤(在 "Behaviours" 上方有红色 X)。
我在 Jenkins 中有一个 Laravel 项目和简单的管道,它从 Docker 文件构建 Docker 图像,在其中提取代码并执行 composer install
。到目前为止一切正常,但安装作曲家包需要很多时间(比如 6-7 分钟)。我试图在某个地方保留供应商目录,创建指向它的符号链接或其他东西,但到目前为止没有任何效果。我想知道是否有更好的官方方式来处理这个问题?任何人都有一些想法或经验吗?或者可能是一些不同的 CI 工具?
好的,我最终得到了两个解决方案:
- 我将 composer 缓存目录挂载到主机中的某个目录以加速 composer 包的安装:
dockerfile {
filename 'Dockerfile'
args '-v $HOME/composer_cache:/.composer/cache'
}
- 有(不是很明显,因为 Jenkins 面板有点乱)禁用工作区清理的选项 before/after 代码检出。可以在 "Branch Sources" 部分下的管道配置中删除这些步骤(在 "Behaviours" 上方有红色 X)。