🤖 AI Summary
To address the high rebuild overhead caused by frequent Dockerfile modifications, this paper proposes the first rebuild optimization method tailored for long-term evolution scenarios. Our approach mines historical modification patterns to construct an instruction priority model, then applies syntactic dependency analysis and weighted topological sorting to reorder instructions—thereby improving cache hit rates while preserving behavioral equivalence. We unify future change prediction, dependency-constraint modeling, and equivalence verification within a single optimization framework, and design a lightweight validation mechanism. Experimental evaluation on 2,000 GitHub repositories shows that our method reduces average rebuild time by 26.5%; 92.75% of Dockerfiles achieve speedup, with 12.82% exhibiting over 50% acceleration; functional consistency is maintained at 86.2%.
📝 Abstract
Containerization has revolutionized software deployment, with Docker leading the way due to its ease of use and consistent runtime environment. As Docker usage grows, optimizing Dockerfile performance, particularly by reducing rebuild time, has become essential for maintaining efficient CI/CD pipelines. However, existing optimization approaches primarily address single builds without considering the recurring rebuild costs associated with modifications and evolution, limiting long-term efficiency gains. To bridge this gap, we present Doctor, a method for improving Dockerfile build efficiency through instruction re-ordering that addresses key challenges: identifying instruction dependencies, predicting future modifications, ensuring behavioral equivalence, and managing the optimization computational complexity. We developed a comprehensive dependency taxonomy based on Dockerfile syntax and a historical modification analysis to prioritize frequently modified instructions. Using a weighted topological sorting algorithm, Doctor optimizes instruction order to minimize future rebuild time while maintaining functionality. Experiments on 2,000 GitHub repositories show that Doctor improves 92.75% of Dockerfiles, reducing rebuild time by an average of 26.5%, with 12.82% of files achieving over a 50% reduction. Notably, 86.2% of cases preserve functional similarity. These findings highlight best practices for Dockerfile management, enabling developers to enhance Docker efficiency through informed optimization strategies.