面向 Dockerfile 质量的重构:对开发者实践与自动化潜力的深入研究
软件工程
2025-01-27 v1
摘要
Docker 作为打包和部署应用的行业标准,利用基础设施即代码(IaC)原则来促进通过 Dockerfile 创建镜像的过程。然而,保持 Dockerfile 的质量面临着显著的挑战, particularly 地,重构往往是手动且复杂的过程。本文探讨了使用来自 358 个开源项目中 600 个 Dockerfile 自动化 Dockerfile 重构的实用性。我们的研究表明,随着项目的演进,Dockerfile 的镜像大小和构建持续时间倾向于增加,开发者常常会推迟进行重构工作直到开发周期后期。这一趋势激发了自动化重构的动力。为实现这一目标,我们利用情境学习(ICL)结合基于评分的演示选择策略。我们的方法在镜像大小上实现平均降低 32%,构建持续时间降低 6%,并在可理解性和可维护性方面分别观察到 77% 和 91% 的改进情况。此外,我们的分析显示,自动化重构将 Dockerfile 镜像大小缩小为手动重构的 2 倍,甚至是像 PARFUM 这样的反应式修复工具的 10 倍。这项工作为自动化 Dockerfile 重构奠定了基础,表明此类自动化在整个软件开发生命周期内提升 Dockerfile 质量并不断成为 CI/CD 流程中的标准实践。
关键词
引用
@article{arxiv.2501.14131,
title = {Refactoring for Dockerfile Quality: A Dive into Developer Practices and Automation Potential},
author = {Emna Ksontini and Meriem Mastouri and Rania Khalsi and Wael Kessentini},
journal= {arXiv preprint arXiv:2501.14131},
year = {2025}
}