Sign inSign up

redcoolbeans/dockerlint

By redcoolbeans

•Updated over 7 years ago

Dockerlint image to validate your Dockerfiles

Image
3

500K+

redcoolbeans/dockerlint repository overview

NPM Build Status Build status

⁠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 dockerlint

⁠Usage

Once installed it's as easy as:

dockerlint Dockerfile

Which 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/dockerlint

You 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/dockerlint
⁠docker-compose

For docker-compose use a docker-compose.yml such as the following:

---
  dockerlint:
    image: redcoolbeans/dockerlint
    volumes:
      - ./Dockerfile:/Dockerfile

Then simply run:

docker-compose up dockerlint

This 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-script

You can run dockerlint with:

make deps # runs npm install
make js && coffee bin/dockerlint.coffee

If 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.exe

⁠Roadmap

  • 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

  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request

Tag summary

Content type

Image

Digest

sha256:f7ad89f90…

Size

13.4 MB

Last updated

over 7 years ago

docker pull redcoolbeans/dockerlint