Skip to content

Hadolint GitLab CI Component

A GitLab CI component for hadolint - a Dockerfile linter written in Haskell that helps you build best practice Docker images.

Features

  • Dockerfile Linting: Validates Dockerfile syntax and best practices
  • Multi-file Support: Scan Dockerfile, Podmanfile, and Containerfile formats
  • Custom Configuration: Support for local and remote configuration files
  • Flexible Arguments: Pass additional flags directly to hadolint
  • Configurable Job Settings: Customise job name, stage, and container image

Usage

Basic Usage

include:
  - component: $CI_SERVER_FQDN/niclas-zone/ci/hadolint/main@latest

stages:
  - lint

With Custom Configuration

include:
  - component: $CI_SERVER_FQDN/niclas-zone/ci/hadolint/main@latest
    inputs:
      HADOLINT_CONFIG: ".hadolint.yaml"
      HADOLINT_EXTRA_ARGS: "--ignore DL3008"
      HADOLINT_FILE_PATTERNS: "Dockerfile Podmanfile Containerfile"

With Remote Configuration

include:
  - component: $CI_SERVER_FQDN/niclas-zone/ci/hadolint/main@latest
    inputs:
      HADOLINT_REMOTE_CONFIG: "https://gitlab.com/niclas-zone/ci/hadolint/-/raw/main/config/hadolint.yaml"
      HADOLINT_FILE_PATTERNS: "Dockerfile Podmanfile Containerfile"

Inputs

Input Description Default
job_name Name of the CI job "hadolint"
stage Pipeline stage "lint"
image Docker image for hadolint "registry.gitlab.com/niclas-zone/ctr/hadolint:v2.13.1"
allow_failure Allow job to fail without blocking pipeline false
HADOLINT_EXTRA_ARGS Extra arguments for hadolint ""
HADOLINT_CONFIG Path to local hadolint config file ""
HADOLINT_REMOTE_CONFIG URL to download hadolint config file ""
HADOLINT_FILE_PATTERNS Space-separated list of filenames to lint "Dockerfile Podmanfile Containerfile"