{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,3,17]],"date-time":"2026-03-17T00:55:11Z","timestamp":1773708911672,"version":"3.50.1"},"reference-count":63,"publisher":"Association for Computing Machinery (ACM)","issue":"FSE","funder":[{"name":"National Natural Science Foundation of China","award":["No.62202480"],"award-info":[{"award-number":["No.62202480"]}]}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":["Proc. ACM Softw. Eng."],"published-print":{"date-parts":[[2025,6,19]]},"abstract":"<jats:p>Docker building is a critical component of containerization in modern software development, automating the process of packaging and converting sources into container images. It is not uncommon to find that Docker build faults (DBFs) occur frequently across Docker-based projects, inducing non-negligible costs in development activities. DBF resolution is a challenging problem and previous studies have demonstrated that developers spend non-trivial time in resolving encountered build faults. However, the characteristics of DBFs is still under-investigated, hindering practical solutions to build management in the Docker community. In this paper, to bridge this gap, we present a comprehensive study for understanding the real-world DBFs in practice. We collect and analyze a DBF dataset of 255 issues and 219 posts from GitHub, Stack Overflow, and Docker Forum. We investigate and construct characteristic taxonomies for the DBFs, including 15 symptoms, 23 root causes, and 35 fix patterns. Moreover, we study the fault distributions of symptoms and root causes, in terms of the different build types, i.e., Dockerfile builds and Docker-compose builds. Based on the results, we provide actionable implications and develop a knowledge-based application, which can potentially facilitate research and assist developers in improving the Docker build management.<\/jats:p>","DOI":"10.1145\/3715757","type":"journal-article","created":{"date-parts":[[2025,6,19]],"date-time":"2025-06-19T15:15:34Z","timestamp":1750346134000},"page":"868-890","source":"Crossref","is-referenced-by-count":4,"title":["Towards Understanding Docker Build Faults in Practice: Symptoms, Root Causes, and Fix Patterns"],"prefix":"10.1145","volume":"2","author":[{"ORCID":"https:\/\/orcid.org\/0000-0002-8652-116X","authenticated-orcid":false,"given":"Yiwen","family":"Wu","sequence":"first","affiliation":[{"name":"National University of Defense Technology, Changsha, China"},{"name":"State Key Laboratory of Complex &amp; Critical Software Environment, Chang sha, China"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-3111-1534","authenticated-orcid":false,"given":"Yang","family":"Zhang","sequence":"additional","affiliation":[{"name":"National University of Defense Technology, Changsha, China"},{"name":"State Key Laboratory of Complex &amp; Critical Software Environment, Changsha, China"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-8406-8672","authenticated-orcid":false,"given":"Tao","family":"Wang","sequence":"additional","affiliation":[{"name":"National University of Defense Technology, Changsha, China"},{"name":"State Key Laboratory of Complex &amp; Critical Software Environment, Changsha, China"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0000-0003-1512-4105","authenticated-orcid":false,"given":"Bo","family":"Ding","sequence":"additional","affiliation":[{"name":"National University of Defense Technology, Changsha, China"},{"name":"State Key Laboratory of Complex &amp; Critical Software Environment, Changsha, China"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-3245-1901","authenticated-orcid":false,"given":"Huaimin","family":"Wang","sequence":"additional","affiliation":[{"name":"National University of Defense Technology, Changsha, China"},{"name":"State Key Laboratory of Complex &amp; Critical Software Environment, Changsha, China"}],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"320","published-online":{"date-parts":[[2025,6,19]]},"reference":[{"key":"e_1_2_1_1_1","doi-asserted-by":"publisher","DOI":"10.1109\/MS.2015.62"},{"key":"e_1_2_1_2_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-1-4842-3655-0"},{"key":"e_1_2_1_3_1","doi-asserted-by":"publisher","DOI":"10.1145\/3338906.3338939"},{"key":"e_1_2_1_4_1","doi-asserted-by":"publisher","DOI":"10.1145\/2597073.2597083"},{"key":"e_1_2_1_5_1","doi-asserted-by":"publisher","DOI":"10.1109\/MCC.2014.51"},{"key":"e_1_2_1_6_1","doi-asserted-by":"publisher","DOI":"10.1145\/2723872.2723882"},{"key":"e_1_2_1_7_1","doi-asserted-by":"publisher","DOI":"10.1145\/3477314.3507123"},{"key":"e_1_2_1_8_1","doi-asserted-by":"publisher","DOI":"10.1145\/2889160.2891057"},{"key":"e_1_2_1_9_1","doi-asserted-by":"publisher","DOI":"10.1109\/MSR.2017.67"},{"key":"e_1_2_1_10_1","doi-asserted-by":"publisher","DOI":"10.1177\/001316446002000104"},{"key":"e_1_2_1_11_1","doi-asserted-by":"publisher","DOI":"10.1109\/MCC.2016.100"},{"key":"e_1_2_1_12_1","unstructured":"DBF-Artifact. 2024. Artifact Package for DBF Study. [online]. https:\/\/sites.google.com\/view\/dbf-research"},{"key":"e_1_2_1_13_1","doi-asserted-by":"publisher","DOI":"10.1109\/ICSME55016.2022.00029"},{"key":"e_1_2_1_14_1","unstructured":"Docker. 2022. docker build. [online]. https:\/\/docs.docker.com\/engine\/reference\/commandline\/build\/"},{"key":"e_1_2_1_15_1","unstructured":"Docker. 2022. Docker compose. [online]. https:\/\/docs.docker.com\/engine\/reference\/commandline\/compose\/"},{"key":"e_1_2_1_16_1","unstructured":"Docker. 2024. Build context. [online]. https:\/\/docs.docker.com\/build\/concepts\/context\/"},{"key":"e_1_2_1_17_1","unstructured":"Docker. 2024. Docker build cache. [online]. https:\/\/docs.docker.com\/build\/cache\/"},{"key":"e_1_2_1_18_1","unstructured":"Docker. 2024. Docker Build Overview. [online]. https:\/\/docs.docker.com\/build\/concepts\/overview\/"},{"key":"e_1_2_1_19_1","unstructured":"Docker. 2024. Docker compose build. [online]. https:\/\/docs.docker.com\/reference\/cli\/docker\/compose\/build\/"},{"key":"e_1_2_1_20_1","doi-asserted-by":"publisher","DOI":"10.1109\/HPCC-SmartCity-DSS.2017.44"},{"key":"e_1_2_1_21_1","doi-asserted-by":"publisher","DOI":"10.1109\/IC2E.2014.41"},{"key":"e_1_2_1_22_1","doi-asserted-by":"publisher","DOI":"10.1007\/s10664-024-10462-8"},{"key":"e_1_2_1_23_1","doi-asserted-by":"publisher","DOI":"10.1109\/MIPR.2019.00094"},{"key":"e_1_2_1_24_1","unstructured":"GitHub. 2022. Search issues and pull requests. [online]. https:\/\/docs.github.com\/en\/rest\/search\/search?apiVersion=2022-11-28#search-issues-and-pull-requests"},{"key":"e_1_2_1_25_1","doi-asserted-by":"publisher","DOI":"10.1145\/3382494.3410693"},{"key":"e_1_2_1_26_1","doi-asserted-by":"publisher","DOI":"10.1109\/ESEM.2017.11"},{"key":"e_1_2_1_27_1","doi-asserted-by":"publisher","DOI":"10.1109\/TSE.2023.3278129"},{"key":"e_1_2_1_28_1","unstructured":"Viktor Hedefalk. 2018. How do I copy variables between stages of multi stage Docker build? [online]. https:\/\/stackoverflow.com\/questions\/52904847\/how-do-i-copy-variables-between-stages-of-multi-stage-docker-build"},{"key":"e_1_2_1_29_1","doi-asserted-by":"publisher","DOI":"10.1109\/ICSE43902.2021.00106"},{"key":"e_1_2_1_30_1","doi-asserted-by":"publisher","DOI":"10.1007\/s10664-021-10025-1"},{"key":"e_1_2_1_31_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.jksuci.2023.01.014"},{"key":"e_1_2_1_32_1","doi-asserted-by":"publisher","unstructured":"Kinnary Jangla. 2018. Docker compose. Accelerating Development Velocity Using Docker: Docker Across Microservices 77\u201398. https:\/\/doi.org\/10.1007\/978-1-4842-3936-0 10.1007\/978-1-4842-3936-0","DOI":"10.1007\/978-1-4842-3936-0"},{"key":"e_1_2_1_33_1","doi-asserted-by":"publisher","DOI":"10.1007\/s10664-015-9393-5"},{"key":"e_1_2_1_34_1","doi-asserted-by":"publisher","DOI":"10.1109\/ASE51524.2021.9678585"},{"key":"e_1_2_1_35_1","first-page":"9459","article-title":"Retrieval-augmented generation for knowledge-intensive nlp tasks","volume":"33","author":"Lewis Patrick","year":"2020","unstructured":"Patrick Lewis, Ethan Perez, Aleksandra Piktus, Fabio Petroni, Vladimir Karpukhin, Naman Goyal, Heinrich K\u00fcttler, Mike Lewis, Wen-tau Yih, and Tim Rockt\u00e4schel. 2020. Retrieval-augmented generation for knowledge-intensive nlp tasks. Advances in Neural Information Processing Systems, 33 (2020), 9459\u20139474.","journal-title":"Advances in Neural Information Processing Systems"},{"key":"e_1_2_1_36_1","doi-asserted-by":"publisher","DOI":"10.1109\/ICSME52107.2021.00037"},{"key":"e_1_2_1_37_1","doi-asserted-by":"publisher","DOI":"10.1145\/3368089.3409760"},{"key":"e_1_2_1_38_1","doi-asserted-by":"publisher","DOI":"10.1007\/s10664-011-9169-5"},{"key":"e_1_2_1_39_1","unstructured":"Mcarans Mike. 2020. \u201cBuild finished\u201d\u2019 Docker build hangs on \u201cCanceling\u201d\u2019. [online]. https:\/\/forums.docker.com\/t\/build-finished-docker-build-hangs-on-canceling\/90527"},{"key":"e_1_2_1_40_1","volume-title":"Using Docker: Developing and deploying software with containers. \" O\u2019Reilly Media","author":"Mouat Adrian","year":"2015","unstructured":"Adrian Mouat. 2015. Using Docker: Developing and deploying software with containers. \" O\u2019Reilly Media, Inc.\"."},{"key":"e_1_2_1_41_1","volume-title":"Nomic Embed: Training a Reproducible Long Context Text Embedder. arXiv:2402.01613.","author":"Nussbaum Zach","year":"2024","unstructured":"Zach Nussbaum, John X. Morris, Brandon Duderstadt, and Andriy Mulyar. 2024. Nomic Embed: Training a Reproducible Long Context Text Embedder. arXiv:2402.01613."},{"key":"e_1_2_1_42_1","doi-asserted-by":"publisher","DOI":"10.1109\/ICSME.2014.90"},{"key":"e_1_2_1_43_1","unstructured":"Pprathima3. 2018. Docker build image failing with docker load command failed with output. [online]. https:\/\/forums.docker.com\/t\/docker-build-image-failing-with-docker-load-command-failed-with-output\/64936"},{"key":"e_1_2_1_44_1","unstructured":"Nicolas R.. 2017. Extremely slow parallel docker builds. [online]. https:\/\/forums.docker.com\/t\/extremely-slow-parallel-docker-builds\/38587"},{"key":"e_1_2_1_45_1","doi-asserted-by":"publisher","DOI":"10.1007\/s10664-015-9379-3"},{"key":"e_1_2_1_46_1","doi-asserted-by":"publisher","DOI":"10.1109\/32.799955"},{"key":"e_1_2_1_47_1","doi-asserted-by":"publisher","DOI":"10.1145\/2568225.2568255"},{"key":"e_1_2_1_48_1","unstructured":"Edvard Shalaev. 2021. Containerized Software Development for Industrial Environment."},{"key":"e_1_2_1_49_1","volume-title":"Docker orchestration","author":"Smith Randall","unstructured":"Randall Smith. 2017. Docker orchestration. Packt Publishing Ltd."},{"key":"e_1_2_1_50_1","unstructured":"Stack-Overflow. 2023. 2023 Developer Survey. [online]. https:\/\/survey.stack-overflow.co\/2023\/"},{"key":"e_1_2_1_51_1","unstructured":"Stack-Overflow. 2024. Stack Exchange Data Explorer. [online]. https:\/\/data.stackexchange.com\/stackoverflow\/query\/"},{"key":"e_1_2_1_52_1","unstructured":"stefan79. 2015. Ansible Provisioner cannot complete on docker build. [online]. https:\/\/github.com\/hashicorp\/packer\/issues\/2028"},{"key":"e_1_2_1_53_1","doi-asserted-by":"publisher","DOI":"10.1145\/3001878.3001882"},{"key":"e_1_2_1_54_1","volume-title":"Cassidy Hardin, Surya Bhupatiraju, L\u00e9onard Hussenot, Thomas Mesnard, Bobak Shahriari, and Alexandre Ram\u00e9.","author":"Team Gemma","year":"2024","unstructured":"Gemma Team, Morgane Riviere, Shreya Pathak, Pier Giuseppe Sessa, Cassidy Hardin, Surya Bhupatiraju, L\u00e9onard Hussenot, Thomas Mesnard, Bobak Shahriari, and Alexandre Ram\u00e9. 2024. Gemma 2: Improving open language models at a practical size. arXiv:2408.00118."},{"key":"e_1_2_1_55_1","doi-asserted-by":"publisher","DOI":"10.1109\/ICSME.2017.67"},{"key":"e_1_2_1_56_1","unstructured":"Whoibrar. 2024. What Is Docker Daemon? [online]. https:\/\/www.geeksforgeeks.org\/what-is-docker-daemon\/"},{"key":"e_1_2_1_57_1","doi-asserted-by":"publisher","DOI":"10.1145\/3379597.3387483"},{"key":"e_1_2_1_58_1","doi-asserted-by":"publisher","DOI":"10.1145\/3551349.3556940"},{"key":"e_1_2_1_59_1","doi-asserted-by":"publisher","DOI":"10.1145\/3183399.3183403"},{"key":"e_1_2_1_60_1","doi-asserted-by":"publisher","DOI":"10.1145\/3236024.3236033"},{"key":"e_1_2_1_61_1","doi-asserted-by":"publisher","DOI":"10.1145\/3597503.3623327"},{"key":"e_1_2_1_62_1","doi-asserted-by":"publisher","DOI":"10.1109\/SANER53432.2022.00060"},{"key":"e_1_2_1_63_1","doi-asserted-by":"publisher","DOI":"10.1007\/s10664-019-09709-6"}],"container-title":["Proceedings of the ACM on Software Engineering"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3715757","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,19]],"date-time":"2025-06-19T15:23:11Z","timestamp":1750346591000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3715757"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2025,6,19]]},"references-count":63,"journal-issue":{"issue":"FSE","published-print":{"date-parts":[[2025,6,19]]}},"alternative-id":["10.1145\/3715757"],"URL":"https:\/\/doi.org\/10.1145\/3715757","relation":{},"ISSN":["2994-970X"],"issn-type":[{"value":"2994-970X","type":"electronic"}],"subject":[],"published":{"date-parts":[[2025,6,19]]}}}