Skip to content
Go to file

Latest commit


Git stats


Failed to load latest commit information.


Automatic creation of Docker image from Code repository.

  1. Predict technology of the repository
    This is achieved by using the tool 'linguist'. Instrucions on how to use Linguist can be found here: The detect_technology.js app takes as input the URL of the repository for which the Dockerfile is to be created. It clones the repo and runs linguist command on it and outputs the technology used.

  2. Populate the Dockerfile
    The output of the detect_technology app, i.e. the technology predicted is then passed as input to the populate_dockerfile.js app, along with the name of the repo. The populate_dockerfile is printing out the commands for installing base and source dependencies for the repo. All these commands are stored in the Dockerfile.

  3. Creating Dockerfile
    The script runs these files sequentially creating a Dockerfile

    sh <github repo URL>

Once created, you can either save the Dockerfile somewhere or push it to the repo it was created for

Testing on a DO droplet

On a DO Ubuntu droplet, run the script ``` scp sh ``` Then create docker image using following steps (Assuming the Dockerfile created using is a part of this repo
cd repo
sudo docker build -t img_dockerizeme .
sudo docker run -p 8080:8080 -td --name npm_updates_container img_dockerizeme
sudo docker exec -it npm_updates_container bash

Future Research Directions.

We see three possible directions for how to improve the tools

  1. Create a smart dictionary of dependencies. Be able to scan import statements of code and detect which high-level libraries that need to be installed.

  2. Create smart profiles of different types of applications. If we can create a common python/ML container that is able to run most machine learning or text processing applications, then we can focus on how to reduce and optimize the dependencies further.

  3. Create a selenium-like bot that can process and install instructions and see if we can create installers from human instructions.

We have already started working on the approach that involves creation of a smart dictionary.


No description, website, or topics provided.



No releases published
You can’t perform that action at this time.