Skip to content

Shipwright: a tool for building, clustering, analyzing, and fixing broken Dockerfiles.

Notifications You must be signed in to change notification settings

jjhenkel/docker-build-log-analysis

Repository files navigation

Shipwright

This repository contains the tools for building, clustering, analyzing, and fixing broken Dockerfiles.

Setup / Environment

There are a few prerequisite tools Shipwright relies on:

  • A recent version of make
  • A recent version of Docker
  • git and other simple utilities

Building

One of the key usages of Shipwright involves running in-context Dockerfile builds. To facilitate this, Shipwright provides the following make target: TARGET="${SHA}" make run-dockerception. This command will build the Dockerfile in the target git repository (identified by the commit SHA---see ./data/repo-metadata/just-commit-shas.txt for a listing of repositories in our dataset). As part of this process, Shipwright will spin up a "Docker-inside-of-Docker" container to both: (i) clone the repository matching the given ${SHA}, and (ii) attempt an in-context build (with a 30 minute timeout). Results are saved to the ./data/build-results/<repo-id>/<commit-sha>/... directory.

Clustering & Analyzing

We provide the following example notebook for these tasks: link to Google Collaboratory notebook.

Fixing

Coming soon (secondary repository with further tools/scripts --- currently undergoing cleanup).

Pull Requests

Here's a listing of links to pull requests made with Shipwright:

Accepted (19)

Rejected (3)

In Review (23)

About

Shipwright: a tool for building, clustering, analyzing, and fixing broken Dockerfiles.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published