hadolint
brew install hadolint
v2.14.0
GPL-3.0-only
Smarter Dockerfile linter to validate best practices
1.6k
30-day installs · #1093
5.7k
90-day · #1028
24.2k
365-day · #980
12.2k
★ GitHub stars · updated 2mo ago
Runtime dependencies
Build dependencies
GitHub topics
docker
dockerfile
dockerfile-linter
haskell
linter
shellcheck
static-analysis
Links
- https://github.com/hadolint/hadolint
- GitHub: hadolint/hadolint
- Brew formula source: Formula/h/hadolint.rb
Raw metadata
{
"aliases": [],
"alternatives": [],
"build_dependencies": [
"cabal-install",
"ghc"
],
"categories": [],
"caveats": null,
"conflicts_with": [],
"dependencies": [
"gmp"
],
"deprecated": 0,
"deprecation_reason": null,
"desc": "Smarter Dockerfile linter to validate best practices",
"disable_reason": null,
"disabled": 0,
"enrichment_fetched_at": "2026-06-20T23:38:32+00:00",
"first_seen": "2026-06-20T23:34:18+00:00",
"full_name": "hadolint",
"github_default_branch": "master",
"github_last_commit_at": "2026-06-11T07:29:04Z",
"github_readme_excerpt": "# Hadolint - Haskell Dockerfile Linter\n\n[![GPL-3 licensed][license-img]][license]\n[![GitHub release][release-img]][release]\n[![Hackage version][hackage-img]][hackage]\n[![GitHub downloads][downloads-img]][release]\n[![Docker pulls][docker-img]][docker]\n[![Build Status][github-actions-img]][github-actions]\n\n\u003cimg align=\"right\" alt=\"pipecat\" width=\"150\"\nsrc=\"https://hadolint.github.io/hadolint/img/cat_container.png\" /\u003e\n\nA smarter Dockerfile linter that helps you build [best practice][] Docker\nimages. The linter parses the Dockerfile into an AST and performs rules on\ntop of the AST. It stands on the shoulders of [ShellCheck][] to lint\nthe Bash code inside `RUN` instructions.\n\n[:globe_with_meridians: **Check the online version on\nhadolint.github.io/hadolint**](https://hadolint.github.io/hadolint)\n[](https://hadolint.github.io/hadolint)\n\n## Table of Contents\n\n- [How to use](#how-to-use)\n- [Install](#install)\n- [CLI](#cli)\n- [Configure](#configure)\n- [Non-Posix Shells](#non-posix-shells)\n- [Ignoring Rules](#ignoring-rules)\n - [Inline ignores](#inline-ignores)\n - [Global ignores](#global-ignores)\n- [Linting Labels](#linting-labels)\n - [Note on dealing with variables in labels](#note-on-dealing-with-variables-in-labels)\n- [Integrations](#integrations)\n- [Rules](#rules)\n- [Develop](#develop)\n - [Setup](#setup)\n - [REPL](#repl)\n - [Tests](#tests)\n - [AST](#ast)\n - [Building against custom libraries](#building-against-custom-libraries)\n- [Alternatives](#alternatives)\n\n## How to use\n\nYou can run `hadolint` locally to lint your Dockerfile.\n\n```bash\nhadolint \u003cDockerfile\u003e\nhadolint --ignore DL3003 --ignore DL3006 \u003cDockerfile\u003e # exclude specific rules\nhadolint --trusted-registry my-company.com:500 \u003cDockerfile\u003e # Warn when using untrusted FROM images\n```\n\nDocker comes to the rescue, providing an easy way how to run `hadolint` on most\nplatforms.\nJust pipe your `Dockerfile` to `docker run`:\n\n```bash\ndocker run --rm -i hadolint/hadolint \u003c Dockerfile\n# O",
"github_repo": "hadolint/hadolint",
"github_stars": 12232,
"github_topics": [
"docker",
"dockerfile",
"dockerfile-linter",
"haskell",
"linter",
"shellcheck",
"static-analysis"
],
"homepage": "https://github.com/hadolint/hadolint",
"homepage_og_description": null,
"homepage_og_image": null,
"homepage_title": null,
"installs_30d": 1555,
"installs_365d": 24163,
"installs_90d": 5716,
"keg_only": 0,
"keg_only_reason": null,
"last_seen": "2026-06-20T23:34:18+00:00",
"license": "GPL-3.0-only",
"llm_generated_at": null,
"llm_model": null,
"name": "hadolint",
"oldnames": [],
"one_liner": null,
"optional_dependencies": [],
"rank_30d": 1093,
"rank_365d": 980,
"rank_90d": 1028,
"raw_hash": "18510cf4677bd3a0",
"recommended_dependencies": [],
"revision": 0,
"ruby_source_path": "Formula/h/hadolint.rb",
"tap": "homebrew/core",
"test_dependencies": [],
"uses_from_macos": [
"libffi",
"xz"
],
"version_head": null,
"version_stable": "2.14.0",
"versioned_formulae": [],
"why_use_this": null
}