dockerlint v0.3.9
Dockerlint
Linting tool for Dockerfiles based on recommendations from Dockerfile Reference and Best practices for writing Dockerfiles as of Docker 1.6.
Install
With npm just do:
$ [sudo] npm install -g dockerlintUsage
Once installed it's as easy as:
dockerlint DockerfileWhich will parse the file and notify you about any actual errors (such an
omitted tag when : is set), and warn you about common pitfalls or bad idiom
such as the common use case of ADD.
In order to treat warnings as errors, use the -p flag.
Docker image
Alternatively there is a Docker image available.
This image provides a quick and easy way to validate your Dockerfiles, without having to install Node.JS and the dockerlint dependencies on your system.
First fetch the image from the Docker Hub:
docker pull redcoolbeans/dockerlintYou can either run it directly, or use docker-compose.
docker run
For a quick one-off validation:
docker run -it --rm -v "$PWD/Dockerfile":/Dockerfile:ro redcoolbeans/dockerlintdocker-compose
For docker-compose use a docker-compose.yml such as the following:
---
dockerlint:
image: redcoolbeans/dockerlint
volumes:
- ./Dockerfile:/DockerfileThen simply run:
docker-compose up dockerlintThis will validate the Dockerfile in your current directory.
Running from a git clone
If you've cloned this repository, you will need the following prerequisites: 1. make 2. npm 3. coffee
Installing prerequisites on ubuntu:
sudo apt-get update
sudo apt-get install make
sudo apt-get install npm
sudo ln -s /usr/bin/nodejs /usr/bin/node
sudo npm install -g coffee-scriptYou can run dockerlint with:
make deps # runs npm install
make js && coffee bin/dockerlint.coffeeIf you're building on Windows, you'll have to set the path to your make:
npm config set dockerlint:winmake "mingw32-make.exe"or pass it to every invocation:
npm run build:win --dockerlint:winmake=mingw32-make.exeRoadmap
- Add support for --version which checks against a specific Docker version
- Refactor code to move the rule specific functions into a Rule class
License
MIT, please see the LICENSE file.
Contributing
- Fork it
- Create your feature branch (
git checkout -b my-new-feature) - Commit your changes (
git commit -am 'Add some feature') - Push to the branch (
git push origin my-new-feature) - Create new Pull Request
