Dockerfile 的元维护:我们准备好了吗?
软件工程
2023-05-08 v1
摘要
Docker 允许将应用程序及其依赖打包,其指令在 Dockerfile 中描述。如今,为避免包的最新版本发生意料之外的变更,推荐进行版本固定。然而,由于版本固定带来的困难,Dockerfile 中的版本固定尚未完全实现(在我们分析的 141k 个 Dockerfile 中仅有 17k 个)。为维护带有版本固定包的 Dockerfile,更新包版本十分重要,这不仅是为了增强功能,也是为了软件供应链安全,因为包会被修改以修复漏洞和缺陷。然而,当更新多个版本固定包时,有必要理解包之间的依赖关系并确保版本兼容性,这并不容易。为解决此问题,我们探索了元维护方法的适用性,该方法旨在将某一部分群体中成功更新的成果分发给独立维护同一公共制品的群体。我们对 GitHub 上持有 Dockerfile 并通过 URL 获取包的 7,914 个仓库进行了探索性分析。存在 385 个具有相同多包组合的仓库组,其中 208 个组的 Dockerfile 具有较新的版本组合,被视为可应用元维护。我们的发现支持了元维护在更新多个版本固定包方面的潜力,同时也揭示了未来的挑战。
引用
@article{arxiv.2305.03251,
title = {Meta-Maintanance for Dockerfiles: Are We There Yet?},
author = {Takeru Tanaka and Hideaki Hata and Bodin Chinthanet and Raula Gaikovina Kula and Kenichi Matsumoto},
journal= {arXiv preprint arXiv:2305.03251},
year = {2023}
}
备注
10 pages