figshare
Browse

sorry, we can't preview this file

replication_package.tar.xz (1.09 GB)

Replication Package for "Automatically Generating Dockerfiles via Deep Learning: Challenges and Promises"

Download (1.09 GB)
Version 2 2023-03-10, 18:32
Version 1 2023-03-10, 18:29
dataset
posted on 2023-03-10, 18:32 authored by Giovanni RosaGiovanni Rosa, Antonio Mastropaolo, Simone ScalabrinoSimone Scalabrino, Gabriele Bavota, Rocco Oliveto

Containerization allows developers to define the execution environment in which their software needs to be installed. Docker is the leading platform in this field, and developers that use it are required to write a Dockerfile for their software. Writing Dockerfiles is far from trivial, especially when the system has unusual requirements for its execution environment. Despite several tools exist to support developers in writing Dockerfiles, none of them is able to generate entire Dockerfiles from scratch given a high-level specification of the requirements of the execution environment.

In this paper, we present a study in which we aim at understanding to what extent Deep Learning (DL), which has been proven successful for other coding tasks, can be used for this specific coding task. 

We preliminarily defined a structured natural language specification for Dockerfile requirements and a methodology that we use to automatically infer the requirements from the largest dataset of Dockerfiles currently available. We used the obtained dataset, with 670,982 instances, to train and test a Text-to-Text Transfer Transformer (T5) model, following the current state-of-the-art procedure for coding tasks, to automatically generate Dockerfiles from the structured specifications. The results of our evaluation show that T5 performs similarly to the more trivial IR- based baselines we considered. We also summarize the open challenges associated with the application of deep learning in the context of  Docker file generation.

History

Usage metrics

    Licence

    Exports

    RefWorks
    BibTeX
    Ref. manager
    Endnote
    DataCite
    NLM
    DC