Buildpacks 将容器加固控制点从 Dockerfile 中移出
产业动态
来源:InfoQ 中文发布时间待核实
关于 Dockerfile 与 Buildpacks 的长期争论已经演变为一场安全之争。 Dockerfile 将基础镜像的选择和补丁发布频率交由各个应用团队来决定,而 Cloud Native Buildpacks 则将这些决策权移交给了平台工程团队,由其决定如何在由数百个服务组成的集群中快速修复关键 CVE 漏洞。 两者的区别在于基础镜像的声明位置。在 Dockerfile 中,每个存储库都包含一条 FROM 语句,因此,要推广打过补丁的基础镜像,就意味着需要修改每个服务。虽然 Renovate 和 Dependabot 能自动处理这类机械性操作,但还是需要重新构建:更新 FROM 语句仍然会触发一次完整构建、占用一个 CI 队列槽位、执行一次测试并进行重新部署,而这些操作还要乘以服务数量。 Buildpacks 则颠覆了这一模式。其构建器"(builder)是一个 OCI 镜像,其中打包了一组按顺序排列的 Buildpacks、生命周期以及构建时基础镜像,同时还在元数据中关联了一个独立的运行时基础镜像(即“运行镜像”)。后续构建时会选择一个新的运行镜像,而现有的兼容应用镜像无需重…