A WoodpeckerCI plugin for hadolint to lint Dockerfiles. https://hub.docker.com/r/kokuwaio/hadolint
  • Dockerfile 52.4%
  • Shell 47.6%
Find a file
Renovate a300345ec4
All checks were successful
ci/woodpecker/pr/build Pipeline was successful
ci/woodpecker/pr/lint Pipeline was successful
ci/woodpecker/pr/test/2 Pipeline was successful
ci/woodpecker/pr/test/1 Pipeline was successful
ci/woodpecker/push/lint Pipeline was successful
ci/woodpecker/push/build Pipeline was successful
ci/woodpecker/push/test/1 Pipeline was successful
ci/woodpecker/push/test/2 Pipeline was successful
chore(deps): update kokuwaio/buildctl docker tag from v0.27.1 to v0.28.0
2026-03-05 21:09:35 +00:00
.github chore: reviewed ci and docs 2025-09-20 20:26:41 +02:00
.woodpecker chore(deps): update kokuwaio/buildctl docker tag from v0.27.1 to v0.28.0 2026-03-05 21:09:35 +00:00
.justfile chore(deps): update kokuwaio/markdownlint docker tag from 0.47.0 to 0.48.0 2026-03-03 09:13:01 +00:00
.markdownlint.yaml Initial draft of plugin. 2025-06-17 20:06:41 +02:00
.yamllint.yaml chore: reviewed ci and docs 2025-09-20 20:26:41 +02:00
Dockerfile chore(deps): update docker.io/library/busybox:1.37.0-uclibc docker digest to 23deb35 2026-03-01 19:32:59 +00:00
Dockerfile.dockerignore Initial draft of plugin. 2025-06-17 20:06:41 +02:00
entrypoint.sh feat(docker): switch from bash to busybox 2025-12-17 10:51:02 +01:00
LICENSE Initial draft of plugin. 2025-06-17 20:06:41 +02:00
README.md fix(lint): fix md issues after markdownlint update 2025-11-20 20:29:21 +01:00
renovate.json chore: add gitlab explanation to readme 2025-09-29 09:32:48 +02:00

Hadolint WoodpeckerCI Plugin

pulls size dockerfile license prs issues

A WoodpeckerCI plugin for hadolint to lint Dockerfiles.
Also usable with Gitlab, Github or locally, see examples for usage.

Features

  • preconfigure hadolint parameters
  • searches for Dockerfiles recursive
  • runnable with local docker daemon

Example

Woodpecker:

steps:
  hadolint:
    depends_on: []
    image: kokuwaio/hadolint:v2.14.0
    settings:
      strict-labels: true
      format: json
    when:
      event: pull_request
      path: [.hadolint.yaml, "**/Dockerfile"]

Gitlab: (using script is needed because of https://gitlab.com/gitlab-org/gitlab/-/issues/19717)

hadolint:
  needs: []
  stage: lint
  image:
    name: kokuwaio/hadolint:v2.14.0
    entrypoint: [""]
  script: [/usr/local/bin/entrypoint.sh]
  variables:
    PLUGIN_STRICT_LABELS: true
    PLUGIN_FORMAT: json
  rules:
    - if: $CI_PIPELINE_SOURCE == "merge_request_event"
      changes: [.hadolint.yaml, "**/Dockerfile"]

CLI:

docker run --rm --volume=$(pwd):$(pwd):ro --workdir=$(pwd) kokuwaio/hadolint --strict-labels --format=json

Settings

Settings Name Environment Default Description
no-fail PLUGIN_NO_FAIL none Don't exit with a failure status code when any rule is violated
no-color PLUGIN_NO_COLOR none Don't colorize output
strict-labels PLUGIN_STRICT_LABELS none Do not permit labels other than specified in label-schema
disable-ignore-pragma PLUGIN_DISABLE_IGNORE_PRAGMA none Disable inline ignore pragmas # hadolint ignore=DLxxxx
failure-threshold PLUGIN_FAILURE_THRESHOLD style Exit with failure code only when rules with a severity equal to or above THRESHOLD are violated. Accepted values: error, warning, info, style, ignore, none
format PLUGIN_FORMAT tty The output format for the results: tty, json, checkstyle, codeclimate, gitlab_codeclimate, gnu, codacy, sonarqube, sarif
verbose PLUGIN_VERBOSE false Enables verbose logging of hadolint's output to stderr

Alternatives

Image Comment amd64 arm64
kokuwaio/hadolint Woodpecker plugin size size
hadolint/hadolint not a Woodpecker plugin, official size size
pipelinecomponents/hadolint not a Woodpecker plugin size size