标准答案
- 基础镜像 tag 可能移动,生产构建只记录 tag 难以证明实际内容和复现结果。
- 锁定 digest 后,更新应通过显式变更、测试、扫描和灰度完成,而不是让构建环境悄悄变化。
- 可复现不代表永不更新,团队要有补丁、漏洞、证书和运行时版本的更新窗口。
- 构建制品应记录源码、依赖锁文件、基础镜像 digest、平台和构建工具版本。
题目解析
固定 tag 或 digest 解决的是构建输入可追溯,自动化更新解决的是长期补丁和漏洞暴露;两者并不矛盾。生产制品应记录源码、lockfile、基础镜像 digest、平台和构建器,更新通过显式变更、扫描、测试和灰度进入,而不是在某次构建中悄悄变化。
扫描范围要覆盖基础镜像、系统包、应用间接依赖和最终运行层。digest 固定后仍要定期重建,判断新版本的漏洞可达性、兼容性、证书和回滚成本,并保留上一版可运行制品。
常见误区
- 误区:一直使用 latest。改正:发布时记录并固定 digest,按平台和环境追踪实际内容。
- 误区:固定 digest 后永不更新。改正:建立补丁和漏洞更新窗口,测试后生成新的固定制品。
- 误区:只扫描应用依赖。改正:同时扫描基础镜像、系统包、间接依赖和构建来源。