BuildKit 缓存 Node 依赖的几个关键点
· 阅读需 2 分钟
Docker 构建 Node.js 项目时,最直观的痛点往往是“为什么又重新装了一遍依赖”。项目越大、CI 越频繁,这个问题就越明显。很多时候不是 Docker 慢,而是依赖缓存命中条件没有设计好。
我比较看重的做法,是把锁文件、包管理器版本和依赖安装步骤拆成稳定层。只要这些层保持纯净,BuildKit 就能比较可靠地复用缓存;一旦把源码变动和依赖安装混在一个层里,缓存命中率会立刻掉下来。
BuildKit 的好处在于它允许更灵活的缓存挂载和层利用,但前提依然是构建顺序得合理。先复制锁文件再安装依赖,再复制业务代码,这种朴素顺序依旧很关键。工具只是把收益放大了,不会替你修正糟糕结构。
我也会特别留意私有 registry、CI 环境变量和缓存目录权限,因为这些小细节经常决定“理论上能缓存”最后为什么没有命中。真正的优化,往往是在细节里完成的。
Node 项目的 Docker 构建想要快下来,核心仍然是依赖层要稳定。BuildKit 只是把这套策略做得更值得投入。
