Hadolint
What it is
Hadolint is a Dockerfile linter for Linux, macOS, web, and Windows. It parses each Dockerfile into an abstract syntax tree, then checks that structure for errors and stated best practices. Shell commands in Dockerfile RUN instructions are checked with ShellCheck, so findings can use either Hadolint’s DL rule prefix or ShellCheck’s SC prefix. You can ignore selected rules, override severities, set failure thresholds, choose report formats, and configure label schemas and trusted registries. Reports can be emitted as tty, JSON, Checkstyle, Code Climate, GitLab Code Climate, GNU, Codacy, SonarQube, SARIF, or JUnit. The tool runs through Docker or Podman images, prebuilt macOS, Windows, and Linux binaries, or installation methods such as Homebrew, Scoop, Nix, containers, and source builds. Documented integrations cover CI services, editors, and pre-commit hooks. An online version is also available. The project is GPL-3.0 licensed, with v2.15.1 listed as the latest release.
For and against
For
- Checks Dockerfile structure and best practices
- Uses ShellCheck for Bash in RUN commands
- Many configurable rules and report formats
- Works with CI, editors, and pre-commit
- Free GPL-3.0 open-source plan
Against
- No free trial is offered
- Configuration requires choosing rules and thresholds
The verdict
Hadolint combines Dockerfile analysis with ShellCheck coverage for embedded Bash. Its broad output, integration, and installation options make it adaptable to different development workflows.
Who it suits
Hadolint suits developers and teams maintaining Dockerfiles who want configurable lint rules, structured reports, and CI or editor integration. It also fits workflows using pre-commit hooks or containerized tooling.
Plans and prices
Hadolint
Open-source Dockerfile linter · GPL-3.0
Read 8 Oct 2026 · github.com
On the record
- Bash analysis
- It uses ShellCheck to lint Bash code inside Dockerfile RUN instructions.github.com · read 8 Oct 2026
- CI integrations
- The project documents integrations including GitHub Actions, GitLab CI, Azure DevOps Pipelines, Bitbucket Pipelines, CircleCI, Drone CI, Jenkins, and Travis CI.github.com · read 8 Oct 2026
- Configuration
- Users can configure ignored rules, severity overrides, failure thresholds, output format, label schemas, and trusted registries.github.com · read 8 Oct 2026
- Container use
- Hadolint can run from Docker or Podman container images published on Docker Hub and GitHub Container Registry.github.com · read 8 Oct 2026
- Downloads
- Prebuilt binaries are offered for OSX, Windows, and Linux, with installation also described through Homebrew, Scoop, Nix, containers, or source builds.github.com · read 8 Oct 2026
- Editor integrations
- Documented editor integrations include VS Code, Atom, Emacs, Geany, Sublime Text, Vim, and NeoVim.github.com · read 8 Oct 2026
- Latest release
- The release page opened for this research lists v2.15.1 as the latest release.github.com · read 8 Oct 2026
- License
- The repository identifies its license as GPL-3.0.github.com · read 8 Oct 2026
- Online version
- The README links to an online version hosted at hadolint.github.io/hadolint.github.com · read 8 Oct 2026
- Output formats
- Supported report formats include tty, json, checkstyle, codeclimate, gitlab_codeclimate, gnu, codacy, sonarqube, sarif, and junit.github.com · read 8 Oct 2026
- Parsing
- The linter parses Dockerfiles into an abstract syntax tree and applies rules to it.github.com · read 8 Oct 2026
- Pre-commit
- Hadolint is available as a pre-commit hook, including a Docker-based hook option.github.com · read 8 Oct 2026
- Purpose
- Hadolint is a Dockerfile linter that checks Dockerfiles for errors and best practices.github.com · read 8 Oct 2026
- Rule sources
- Its rules include Hadolint rules with the DL prefix and ShellCheck rules with the SC prefix.github.com · read 8 Oct 2026