macOS
brew install hadolintlocal Homebrew formula metadata
sudo port install hadolintMacPorts ports tree · devel/hadolint/Portfile · source: api.github.com
brew
Smarter Dockerfile linter to validate best practices. Version 2.14.0 via Homebrew; verified 2026-06-28.
install
brew install hadolintlocal Homebrew formula metadata
sudo port install hadolintMacPorts ports tree · devel/hadolint/Portfile · source: api.github.com
sudo dnf install ghc-commutative-semigroupsFedora Rawhide package metadata · ghc-commutative-semigroups · source: dl.fedoraproject.org
nix profile install nixpkgs#hadolintnixpkgs package indexes · hadolint · source: raw.githubusercontent.com
scoop install main/hadolintScoop official bucket manifest trees · bucket/hadolint.json · source: api.github.com
winget install --id hadolint.hadolint -eWindows Package Manager source index · hadolint.hadolint · source: cdn.winget.microsoft.com
overview
Smarter Dockerfile linter to validate best practices
history
Hadolint is a Haskell Dockerfile linter that parses Dockerfiles into an abstract syntax tree, applies Dockerfile best-practice rules, and delegates shell snippets in RUN instructions to ShellCheck. In package-manager culture it is a compact, CI-friendly static analyzer for container builds, often installed locally even when the same tool is also available as a container image.
The first GitHub release in April 2016 described Hadolint as a smarter Dockerfile linter that builds on ShellCheck. Early releases added a clearer command-line interface, multi-file support, Homebrew compatibility, YAML-based ignored-rule configuration, and integration documentation for editors and CI systems.
The project matured by expanding both Dockerfile syntax support and output formats. Release notes record JSON, CodeClimate, Checkstyle XML, Codacy, SonarQube, SARIF, GNU-style, and other formatter work across the 1.x and 2.x lines. Configuration also grew from ignored rules into severity thresholds, trusted registries, label schemas, strict-label behavior, and inline ignore pragmas.
Hadolint 2.0 in 2021 was described by the project as a major internal refactor focused on maintainability and efficiency, with new rule families around LABEL, COPY, useradd, HEALTHCHECK, and package-manager usage. Later releases continued tracking Dockerfile syntax, shell behavior, distribution quirks, and packaging targets such as static binaries and ARM64 builds.
The README documents several installation paths: prebuilt binaries for macOS, Windows, and Linux, Homebrew on macOS, Scoop on Windows, Nix, Docker Hub images, GHCR images, and source builds with Haskell tooling. That breadth is why Hadolint appears in local developer environments, pre-commit hooks, CI jobs, editor integrations, and containerized lint workflows.
Hadolint's adoption is tied to a specific DevOps habit: treating Dockerfiles like source code with repeatable lint rules. Its GitHub Action companion and integration documentation reinforce the tool's role in pull-request checks, while the CLI remains simple enough for one-off use as `hadolint Dockerfile`.
Typical package usage is direct CLI linting of one or more Dockerfiles, optionally selecting output formats for CI annotations or machine-readable reports. Users can override severities, ignore specific rule codes, require label schemas, reject untrusted registries, and set a failure threshold that decides when the process exits unsuccessfully.
Hadolint looks for YAML configuration in project and user config locations, using the first file found. This makes the Homebrew package useful for teams that want a repository-local `.hadolint.yaml` while still allowing individual defaults under XDG or home-directory paths.
Hadolint is package-nerd catnip because it sits at the intersection of Haskell distribution, static binaries, Docker images, shell linting, CI formats, and config-file discovery. It gives a local package manager a cleaner path than `docker run` when a workflow needs fast startup, editor integration, or offline linting.
It also demonstrates how a single-purpose CLI can become infrastructure glue. Package maintainers care about its static binary story, cross-platform release assets, and transitive ShellCheck behavior because those details shape whether Dockerfile linting is painless inside larger build pipelines.
security posture
narrow executable package without higher-risk signals.
green risk · low confidence · appliance
Before unattended agent use, check whether the tool reads plaintext credentials, writes remote state, publishes artifacts, or shells out to plugins.
local files
These source-backed paths show where this package keeps local settings or durable credentials. Automic Vault can use them as review targets for secret scanning, migration, and command approval.
Config paths the tool may read or write during local use.
$PWD/.hadolint.yaml$XDG_CONFIG_HOME/hadolint.yaml~/.config/hadolint.yaml~/.hadolint/hadolint.yaml~/hadolint/config.yaml~/.hadolint.yamlexecutables
| Command | Kind | Exposure | Note |
|---|---|---|---|
hadolint | cli | global executable |
freshness
These signals separate page generation age, package-manager activity, and upstream release comparison. Version lag is warned only when an evidence URL and comparable versions are present.
https://github.com/hadolint/hadolint
install metadata
| Package key | brew:hadolint |
|---|---|
| Version | 2.14.0 |
| Package manager | Homebrew |
| Package manager page | https://formulae.brew.sh/formula/hadolint |
| Homepage | https://github.com/hadolint/hadolint |
| Repository | https://github.com/hadolint/hadolint |
| Upstream docs | https://github.com/hadolint/hadolint#readme |
| License | GPL-3.0-only |
| Source archive | https://github.com/hadolint/hadolint/archive/refs/tags/v2.14.0.tar.gz |
| Last updated | 2026-06-28T12:35:16-04:00 |
| Pulse | updated |
| Dependencies | gmp |
| Build dependencies | cabal-install, ghc |
| Uses from macOS | libffi, xz |
| Bottle | available (on arm64_linux, arm64_sequoia, arm64_sonoma, arm64_tahoe, sonoma, x86_64_linux) |
| Homebrew post-install | not defined |
| Service | none declared |
registry facts
| Source Database | Homebrew formula API |
|---|---|
| Tap | homebrew/core |
| Full Name | hadolint |
| Version Scheme | 0 |
| Revision | 0 |
| Bottle Stable Root URL | https://ghcr.io/v2/homebrew/core |
| Deprecated | no |
| Disabled | no |
| Keg Only | no |
| URL Keys |
|
source database matches
Matches are pulled from external package-manager indexes and kept separate from local Automic Vault package links.
hadolint
nix profile install nixpkgs#hadolintghc-commutative-semigroups 0.2.0.2-24.fc45
Haskell commutative-semigroups library
https://hackage.haskell.org/package/commutative-semigroups
sudo dnf install ghc-commutative-semigroupsghc-commutative-semigroups-devel 0.2.0.2-24.fc45
Haskell commutative-semigroups library development files
https://hackage.haskell.org/package/hadolint
sudo dnf install ghc-commutative-semigroups-develghc-commutative-semigroups-doc 0.2.0.2-24.fc45
Haskell commutative-semigroups library documentation
https://hackage.haskell.org/package/hadolint
sudo dnf install ghc-commutative-semigroups-docghc-commutative-semigroups-prof 0.2.0.2-24.fc45
Haskell commutative-semigroups profiling library
https://hackage.haskell.org/package/hadolint
sudo dnf install ghc-commutative-semigroups-profghc-hadolint 2.14.0-24.fc45
Haskell hadolint library
https://hackage.haskell.org/package/hadolint
sudo dnf install ghc-hadolintghc-hadolint-devel 2.14.0-24.fc45
Haskell hadolint library development files
https://hackage.haskell.org/package/hadolint
sudo dnf install ghc-hadolint-develghc-hadolint-doc 2.14.0-24.fc45
Haskell hadolint library documentation
https://hackage.haskell.org/package/hadolint
sudo dnf install ghc-hadolint-docghc-hadolint-prof 2.14.0-24.fc45
Haskell hadolint profiling library
https://hackage.haskell.org/package/hadolint
sudo dnf install ghc-hadolint-profghc-monoid-subclasses 1.2.6.1-24.fc45
Haskell monoid-subclasses library
https://hackage.haskell.org/package/monoid-subclasses
sudo dnf install ghc-monoid-subclassesghc-monoid-subclasses-devel 1.2.6.1-24.fc45
Haskell monoid-subclasses library development files
https://hackage.haskell.org/package/hadolint
sudo dnf install ghc-monoid-subclasses-develghc-monoid-subclasses-doc 1.2.6.1-24.fc45
Haskell monoid-subclasses library documentation
https://hackage.haskell.org/package/hadolint
sudo dnf install ghc-monoid-subclasses-docghc-monoid-subclasses-prof 1.2.6.1-24.fc45
Haskell monoid-subclasses profiling library
https://hackage.haskell.org/package/hadolint
sudo dnf install ghc-monoid-subclasses-profghc-primes 0.2.1.0-24.fc45
Haskell primes library
https://hackage.haskell.org/package/primes
sudo dnf install ghc-primesghc-primes-devel 0.2.1.0-24.fc45
Haskell primes library development files
https://hackage.haskell.org/package/hadolint
sudo dnf install ghc-primes-develghc-primes-doc 0.2.1.0-24.fc45
Haskell primes library documentation
https://hackage.haskell.org/package/hadolint
sudo dnf install ghc-primes-docsource trail
This page is generated by av-web from the private package SQLite artifact built by scripts/generate-pkg-sqlite.py.
View the package source record on GitHub.