---
url: /zh/build/pipeline-cache.md
---
流水线构建过程中，往往会有很多依赖或者中间产物，通过将这些依赖或者中间产物，缓存起来，供下次流水线使用。往往可以极大的减少构建时间，提高构建效率。

## 节点缓存

流水线是会跑在云平台上多个构建节点上的，为了平衡单点故障问题和缓存命中率，默认情况下，每个仓库的流水线，会分配到固定的3个节点上跑。（随着仓库流水线资源使用情况，也会动态增加节点数）

:::tip
固定的3个节点也是相对的，随着整个云平台节点扩缩容, 也可能会分配到另外的3个节点上
:::

### 代码缓存

流水线执行时，会自动拉取代码文件到构建节点上，同时也会将代码缓存到构建节点。供下次流水线使用。

### 文件缓存

构建过程中，可以把一些`项目依赖`，`构建缓存` 等文件，缓存到构建节点上。供下次流水线使用。

配置方式参考：[pipeline.runner.volumes](./grammar.md#pipeline-volumes)

:::tip
依赖基于 `OverlayFS` 的缓存瞬间复制技术, 可以实现高并发复用缓存。
:::

## 跨节点缓存

为了实现每个构建节点都使用同一份缓存，可以将需要缓存的内容构建成 Docker缓存镜像。

具体方法参考内置任务：[docker:cache](../build/internal-steps/README.md#docker-cache)
