本文主要介绍了流水线缓存设置及清理功能。
Flow 流水线每个任务节点都会创建新的构建环境,并在构建完后销毁。为解决依赖反复下载的问题,Flow 提供了缓存功能,用户可自定义缓存目录,实现任务多次运行的缓存共享。
例如:在 Node.js 构建任务执行npm install
时,会在项目中生成./node_modules
,而缓存在/root/.npm
中,可以将/root/.npm
保存起来方便下次加速下载。
设置缓存目录
在流水线编辑页, 选择
,您可在此页面设置缓存目录。Flow 主要解决任务多次运行间的依赖下载问题,不支持同一次运行中任务间的缓存共享。
Flow 默认缓存以下目录,可按需开启/关闭默认缓存目录,按需修改缓存目录。
管理工具
缓存目录
管理工具
缓存目录
Maven
/root/.m2
Gradle
/root/.gradle/caches
NPM
/root/.npm
yarn
/root/.yarn
go mod
/go/pkg/mod
其他缓存
/root/.cache
支持添加自定义缓存目录,自定义缓存目录需满足以下规则:
不允许填写
/
、/root
、/root/workspace
及其子目录。如需缓存
/root/workspace
下的某个目录或文件,可以将其复制到/root
下其他目录并设置为缓存目录。不允许包含
..
,例如/root/abc/..
为非法文件目录。必须为合法文件目录,例如
/root/%\&dfaf
为非法文件目录。
构建任务使用缓存
缓存目录设置好后,流水线执行时可以使用相应构建命令参数指定是否优先使用缓存。
npm 构建时,使用以下命令安装依赖包,优先从本地缓存获取依赖包:
// 构建中优先使用缓存中 npm install --prefer-offline --no-audit
yarn 构建时,使用以下命令安装依赖包,优先从本地缓存获取依赖包:
// 构建中优先使用缓存中 yarn install --prefer-offline
私有构建集群缓存配置
公共构建集群的依赖缓存存储在云端,每次构建需从云端拉取。使用私有构建集群时,您可以选择以下两种缓存方式:
本地缓存:依赖文件存储在私有构建集群上,直接使用本地缓存,解决网络问题导致的构建缓慢。
云效托管缓存:每次构建下载云端缓存文件,适用于多个构建机的集群,重复利用缓存依赖文件。
私有构建机缓存清理
私有构建集群运行一段时间后,会产生大量缓存文件,需要定期清理以防磁盘打满导致流水线失败。
云效提供缓存清理工具,针对私有构建机的以下内容进行清理:
基础环境清理:
清理已停止容器。
清理悬空无tag镜像。
清理自定义环境构建产生的中间镜像。
清理目录
/root/yunxiao/*/runner/
:3天前的构建任务运行日志。
3天前的构建任务步骤日志。
15天未更新的构建任务缓存目录。
清理工具执行命令如下:
docker run -v /var/run/docker.sock:/var/run/docker.sock -v /root/yunxiao:/root/yunxiao registry.cn-beijing.aliyuncs.com/build-steps/cache-cleaner:0.0.3-20230914183240
您可将以上命令配置到cronjob
中以定期清理缓存。
- 本页导读 (1)
- 设置缓存目录
- 构建任务使用缓存
- 私有构建集群缓存配置
- 私有构建机缓存清理