流水线优化-缓存目录

实际项目中,经常会遇到流水线自动化部署,以前端为例,经常需要安包,如果是每次节点服务器都是全量重新拉代码/安npm包,那么速度会很慢,这时候就需要考虑缓存目录的问题。

一般情况,缓存NPM包

https://static.1991421.cn/2025/2025-01-25-102018.jpeg

适用场景:节点服务器每次都会npm install。但该方案下不满足走docker的情况,因为docker里面执行的npm install,不会影响到宿主机的node_modules。

Docker下,缓存NPM包

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
pipeline {
agent any
stages {
stage('npm 缓存') {
steps {
script {
docker.image('node:14').inside('-v /root/.npm/:/root/.npm/') {
sh 'npm install'
}
}
}
}
}
}

适用场景:CI节点服务器是每次通过docker build来构建前端镜像,镜像中的构建步骤牵扯到npm install。

缓存开启前后,时间对比

写在最后

流水线无论前后端,都需要考虑缓存目录的问题,以提高流水线的执行效率。

相关文档