首页/开发/CI/CD 与发布速查/封闭构建(Hermetic Build)
流水线设计54 条

封闭构建(Hermetic Build)

构建过程不访问网络、依赖全部预先声明并冻结:可复现性、可缓存性与供应链安全的共同基础。

CI/CD 与发布速查开发更新于 2026-10-12
约束构建不依赖外部网络与未声明文件
代表工具Bazel(沙箱与外部依赖声明)、Nix 等
收益缓存精确、结果稳定、攻击面收窄

实践方向

实践方向
1. 依赖以内容摘要引用(而非浮动版本)
2. 构建环境与外部网络隔离
3. 缓存键覆盖全部输入(含工具链版本)
4. 构建日志保留输入清单
从「准封闭」入手:先把依赖下载与构建分离(先预取、后离线构建)。

易错点

  • 构建中途动态下载:缓存失效与结果漂移的常见来源
  • 未声明隐式依赖(系统库/环境变量):换台机器即失败,且难以定位

数据来源与参考

  • Bazel Docs《Hermeticity》
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌