This repository contains the tools for building, clustering, analyzing, and fixing broken Dockerfiles.
There are a few prerequisite tools Shipwright relies on:
- A recent version of
make
- A recent version of
Docker
git
and other simple utilities
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.
We provide the following example notebook for these tasks: link to Google Collaboratory notebook.
Coming soon (secondary repository with further tools/scripts --- currently undergoing cleanup).
Here's a listing of links to pull requests made with Shipwright:
- AjuntamentdeBarcelona/decidim-barcelona#321
- realpython/flask-image-search#2
- LLNL/merlin#254
- fisadev/zombsole#11
- xlight/docker-php7-swoole#2
- castlamp/zenbership#226
- edwin-zvs/email-providers#9
- https://github.com/ex0dus-0x/doxbox/pull/12
- zhihu/kids#58
- cxmcc/webinspect#1
- thegroovebox/groovebox.org#10
- quasoft/backgammonjs#26
- gitevents/core#216
- htilly/SlackONOS#56
- freedomvote/freedomvote#332
- enomotokenji/pytorch-Neural-Style-Transfer#3
- yesodweb/yesodweb.com-content#255
- anurag/fastai-course-1#14
- gjovanov/facer#18
- CubiCasa/CubiCasa5k#22
- blueboxgroup/ursula#3005
- morecobol/cobol.run#2
- avilaton/gtfseditor#222
- domcode/rafflers#171
- ricktorzynski/ocr-tesseract-docker#9
- danitome24/silex-ddd-skeleton#4
- knjcode/pytorch-finetuner#2
- paradisec-archive/nabu#687
- voxpupuli/puppet-puppetboard#289
- agermanidis/OpenGPT-2#6
- airesis/airesis#201
- ynnadkrap/balldontlie#41
- symbiod/juniorjobs#381
- https://github.com/ello/wtf/pull/125
- willywos/jobbyjobjob#50
- grinnellplans/GrinnellPlans#158
- yunalading/yuncms#39
- JensErat/docker-selfoss#14
- worknenjoy/truppie#155
- gochain/rpc-proxy#56
- holderdeord/hdo-site#692
- capn-freako/PyAMI#9