Search engine for discovering works of Art, research articles, and books related to Art and Culture
ShareThis
Javascript must be enabled to continue!

Fixing Dockerfile smells: an empirical study

View through CrossRef
AbstractDocker is the de facto standard for software containerization. A Dockerfile contains the requirements to build a Docker image containing a target application. There are several best practice rules for writing Dockerfiles, but the developers do not always follow them. Violations of such practices, known as Dockerfile smells, can negatively impact the reliability and performance of Docker images. Previous studies showed that Dockerfile smells are widely diffused, and there is a lack of automatic tools that support developers in fixing them. However, it is still unclear what Dockerfile smells get fixed by developers and to what extent developers would be willing to fix smells in the first place. The aim of our study is twofold. First, we want to understand what Dockerfiles smells receive more attention from developers, i.e., are fixed more frequently in the history of open-source projects. Second, we want to check if developers are willing to accept changes aimed at fixing Dockerfile smells (e.g., generated by an automated tool), to understand if they care about them. We evaluated the survivability of Dockerfile smells from a total of 53,456 unique Dockerfiles, where we manually validated a large sample of smell-removing commits to understand (i) if developers performed the change with the intention of removing bad practices, and (ii) if they were aware of the removed smell. In the second part, we used a rule-based tool to automatically fix Dockerfile smells. Then, we proposed such fixes to developers via pull requests. Finally, we quantitatively and qualitatively evaluated the outcome after a monitoring period of more than 7 months. The results of our study showed that most developers pay more attention to changes aimed at improving the performance of Dockerfiles (image size and build time). Moreover, they are willing to accept the fixes for the most common smells, with some exceptions (e.g., missing version pinning for OS packages).
Title: Fixing Dockerfile smells: an empirical study
Description:
AbstractDocker is the de facto standard for software containerization.
A Dockerfile contains the requirements to build a Docker image containing a target application.
There are several best practice rules for writing Dockerfiles, but the developers do not always follow them.
Violations of such practices, known as Dockerfile smells, can negatively impact the reliability and performance of Docker images.
Previous studies showed that Dockerfile smells are widely diffused, and there is a lack of automatic tools that support developers in fixing them.
However, it is still unclear what Dockerfile smells get fixed by developers and to what extent developers would be willing to fix smells in the first place.
The aim of our study is twofold.
First, we want to understand what Dockerfiles smells receive more attention from developers, i.
e.
, are fixed more frequently in the history of open-source projects.
Second, we want to check if developers are willing to accept changes aimed at fixing Dockerfile smells (e.
g.
, generated by an automated tool), to understand if they care about them.
We evaluated the survivability of Dockerfile smells from a total of 53,456 unique Dockerfiles, where we manually validated a large sample of smell-removing commits to understand (i) if developers performed the change with the intention of removing bad practices, and (ii) if they were aware of the removed smell.
In the second part, we used a rule-based tool to automatically fix Dockerfile smells.
Then, we proposed such fixes to developers via pull requests.
Finally, we quantitatively and qualitatively evaluated the outcome after a monitoring period of more than 7 months.
The results of our study showed that most developers pay more attention to changes aimed at improving the performance of Dockerfiles (image size and build time).
Moreover, they are willing to accept the fixes for the most common smells, with some exceptions (e.
g.
, missing version pinning for OS packages).

Related Results

Exploring Test Smells Across Programming Languages: A Systematic Mapping Study
Exploring Test Smells Across Programming Languages: A Systematic Mapping Study
Tests are essential for ensuring code quality in software development. However, poor implementation practices can compromise the maintainability and evolution of test code, leading...
Test smells 20 years later: detectability, validity, and reliability
Test smells 20 years later: detectability, validity, and reliability
AbstractTest smells aim to capture design issues in test code that reduces its maintainability. These have been extensively studied and generally found quite prevalent in both huma...
Discovering code smells in Javascript software using clustering techniques
Discovering code smells in Javascript software using clustering techniques
A presença de code smells em projetos de software têm consequências negativas no que diz respeito a coesão e manutenibilidade do código. Assim sendo, a análise de técnicas usadas p...
Explaining the Imperfect: How do LLMs Respond to Smelly Code?
Explaining the Imperfect: How do LLMs Respond to Smelly Code?
Code smells are indicators of suboptimal design or implementation that contribute to technical debt, impairing software comprehensibility and maintainability. While Large Language ...
The Impact of Code Smells on Software Bugs: a Systematic Literature Review
The Impact of Code Smells on Software Bugs: a Systematic Literature Review
Context: Code smells are associated with poor design and programming style that often degrades code quality and hampers code comprehensibility and maintainability. Goal: Identify r...
Overview of Bad Code Smells in Software Development and Researches
Overview of Bad Code Smells in Software Development and Researches
Abstract This study examines the occurrence, influence, and moderation of bad code smells in software development through a hybrid research methodology combining qualitativ...
Explaining the Imperfect: How do LLMs Respond to Smelly Code?
Explaining the Imperfect: How do LLMs Respond to Smelly Code?
Code smells, indicators of suboptimal design or implementation, contribute to technical debt by impairing software comprehensibility and maintainability. While Large Language Model...
Code Smells Detection and Visualization of Software Systems
Code Smells Detection and Visualization of Software Systems
Bad smells are symptoms in the source code that indicate possible deeper problems and may serve as drivers for code refactoring. Although efforts have been made on measuring code c...

Back to Top