id = "hadolint"
name = "Hadolint"
homepage = "https://github.com/hadolint/hadolint"
description = "A smarter Dockerfile linter that helps you build best practice Docker images."
executables = ["hadolint"]
[dotfiles]
paths = [
"[configHome]/hadolint.yaml",
"%LOCALAPPDATA%/hadolint.yaml",
"~/.hadolint/hadolint.yaml",
"~/hadolint/config.yaml",
"~/.hadolint.yaml",
]
exclude = []
secret = []
side_effect = false
[commands]
format = 1
label = "Lint Dockerfiles"
description = "Lint one or more Dockerfiles with a chosen output format and failure threshold. Per-rule severity overrides, label schemas and registries are left out."
quality = "ai-draft"
parser = { end_of_options = "--", interleave = "permute", long_equals = true, short_attached = false, short_bundles = false }
[[commands.source]]
id = "help"
kind = "help"
url = "https://github.com/hadolint/hadolint/blob/master/README.md"
revision = "master 2026-10"
evidence = """
Usage: hadolint [-v|--version] [-c|--config FILENAME] [DOCKERFILE...]
-c,--config FILENAME Path to the configuration file
--no-fail Don't exit with a failure status code when any rule
is violated
--no-color Don't colorize output
-f,--format ARG The output format for the results [tty | json |
checkstyle | codeclimate | gitlab_codeclimate | gnu |
codacy | sonarqube | sarif | junit] (default: tty)
--ignore RULECODE A rule to ignore. If present, the ignore list in the
--trusted-registry REGISTRY (e.g. docker.io)
--strict-labels Do not permit labels other than specified in
--disable-ignore-pragma Disable inline ignore pragmas `# hadolint
-t,--failure-threshold THRESHOLD
Accepted values: [error | warning | info | style |
ignore | none] (default: info)
"""
[[commands.field]]
id = "dockerfile"
label = "Dockerfiles"
type = "path"
path = { kind = "file", role = "input" }
position = 0
multiple = true
sources = ["help"]
[[commands.field]]
id = "config"
label = "Config file"
type = "path"
option = ["--config", "-c"]
path = { kind = "file", role = "input" }
sources = ["help"]
[[commands.field]]
id = "format"
label = "Output format"
type = "enum"
option = ["--format", "-f"]
choices = [{ value = "tty", label = "tty" }, { value = "json", label = "JSON" }, { value = "checkstyle", label = "Checkstyle" }, { value = "codeclimate", label = "Code Climate" }, { value = "gitlab_codeclimate", label = "GitLab Code Climate" }, { value = "gnu", label = "GNU" }, { value = "codacy", label = "Codacy" }, { value = "sonarqube", label = "SonarQube" }, { value = "sarif", label = "SARIF" }, { value = "junit", label = "JUnit" }]
sources = ["help"]
[[commands.field]]
id = "failure_threshold"
label = "Failure threshold"
type = "enum"
option = ["--failure-threshold", "-t"]
choices = [{ value = "error", label = "error" }, { value = "warning", label = "warning" }, { value = "info", label = "info" }, { value = "style", label = "style" }, { value = "ignore", label = "ignore" }, { value = "none", label = "none" }]
sources = ["help"]
[[commands.field]]
id = "ignore"
label = "Ignore rules"
description = "Rule codes such as DL3008."
type = "string"
option = ["--ignore"]
multiple = true
sources = ["help"]
[[commands.field]]
id = "no_fail"
label = "Never fail the exit code"
type = "boolean"
option = ["--no-fail"]
sources = ["help"]
[[commands.field]]
id = "no_color"
label = "No color"
type = "boolean"
option = ["--no-color"]
sources = ["help"]
[[commands.field]]
id = "trusted_registry"
label = "Trusted registries"
type = "string"
option = ["--trusted-registry"]
multiple = true
sources = ["help"]
[[commands.field]]
id = "strict_labels"
label = "Strict labels"
type = "boolean"
option = ["--strict-labels"]
sources = ["help"]
[[commands.field]]
id = "disable_ignore_pragma"
label = "Disable inline ignore pragmas"
type = "boolean"
option = ["--disable-ignore-pragma"]
sources = ["help"]
[[commands.task]]
id = "lint"
label = "Lint a Dockerfile"
fields = ["dockerfile"]
required = ["dockerfile"]
[[commands.task]]
id = "json"
label = "JSON report"
fields = ["dockerfile", "format"]
required = ["dockerfile"]
set = { format = ["json"] }
[[commands.group]]
id = "basic"
label = "Basic"
fields = ["dockerfile", "format", "failure_threshold", "ignore"]
[[commands.group]]
id = "advanced"
label = "Advanced"
fields = ["config", "no_fail", "no_color", "trusted_registry", "strict_labels", "disable_ignore_pragma"]