# Linter Dockerfile (règles façon Hadolint)

Collez un Dockerfile et obtenez une analyse statique façon Hadolint sans démon Docker : tags d'image de base, USER root, sudo, hygiène apt/apk/yum/dnf, épinglage npm/pip/yarn, ADD vs COPY, fusion de couches, pipefail, ports EXPOSE, secrets dans ENV — 30+ règles par sévérité avec ligne, cause et correctif, plus le code annoté ligne par ligne.

> Page canonique: https://elysiatools.com/fr/tools/dockerfile-linter

- **Catégorie:** Development

- **Mots-clés:** dockerfile, hadolint, linter, bonnes pratiques docker, image conteneur

## Présentation

Les identifiants et sévérités suivent les sources Hadolint v2.15 (DL4000 MAINTAINER=error, DL3025 CMD shell=warning, HEALTHCHECK absent DL3057 ignoré par défaut, optionnel). L'analyse respecte la sémantique Dockerfile : directive # escape=, continuations de ligne, heredocs BuildKit (RUN <<EOF), forme tableau JSON, remise à zéro par FROM des builds multi-étapes et suppression via # hadolint ignore=DLxxxx. Les règles de gestionnaires de paquets fonctionnent par jetons de commande (apt-get update sans rm -rf /var/lib/apt/lists dans le même RUN → DL3009, etc.) ; npm install sans @version → DL3016 ; pip install sans == ni --no-cache-dir → DL3013/DL3042. BP001 est une extension : rappel du .dockerignore sur COPY . .

## Entrées

- **Contenu du Dockerfile** (textarea): FROM node:20-alpine WORKDIR /app COPY . . RUN npm ci --omit=dev CMD \["node", "server.js"\]
- **Sévérité minimale affichée** (select)
- **Inclure la règle HEALTHCHECK (DL3057)** (checkbox)

## Quand l'utiliser

- Avant de pousser un Dockerfile qui mélange FROM :latest, apt-get non nettoyé ou USER root.
- Pour vérifier une build multi-étapes (FROM successifs, COPY --from, USER non-root, CMD JSON).
- Quand vous voulez filtrer les résultats par sévérité (info, warning, error) ou activer la règle HEALTHCHECK DL3057.

## Fonctionnement

- Collez le Dockerfile dans le champ dédié (continuations de ligne, heredocs BuildKit et forme tableau JSON sont pris en charge).
- Choisissez éventuellement la sévérité minimale affichée et cochez l'inclusion de DL3057 (HEALTHCHECK absent).
- L'analyse applique les identifiants Hadolint v2.15, respecte # hadolint ignore=DLxxxx et réinitialise l'état à chaque FROM.
- Le résultat HTML liste les constats par sévérité avec ligne, cause et correctif, plus le code source annoté.

## Cas d'usage

- Repérer FROM ubuntu:latest, MAINTAINER, apt-get sans rm -rf /var/lib/apt/lists et ADD au lieu de COPY.
- Valider une image Node épinglée (npm ci, USER node, CMD JSON, HEALTHCHECK) avant publication.
- Filtrer un Dockerfile existant pour n'afficher que les erreurs ou les avertissements.

## Questions fréquentes

### Faut-il un démon Docker pour lancer l'analyse ?

Non. L'analyse est statique et s'exécute uniquement sur le texte collé.

### Quelles règles sont appliquées ?

Plus de 30 règles alignées sur Hadolint v2.15 (DL4000, DL3009, DL3016, DL3025, etc.) plus l'extension BP001 pour .dockerignore sur COPY . .

### Comment masquer certains avis ?

Ajoutez # hadolint ignore=DLxxxx sur la ligne concernée, ou relevez le seuil de sévérité (warning ou error seulement).

### La règle HEALTHCHECK est-elle toujours active ?

Non. DL3057 est optionnelle : elle n'apparaît que si vous cochez « Inclure la règle HEALTHCHECK ».

### Les builds multi-étapes sont-elles comprises ?

Oui. Chaque FROM remet l'état à zéro ; COPY --from, USER et HEALTHCHECK sont évalués dans le bon contexte.

## Outils associés

- [Verificateur daccessibilite de vision des couleurs](https://elysiatools.com/fr/tools/color-vision-accessibility-checker): Mesure le contraste WCAG, simule les principales deficiences visuelles et signale les zones a faible contraste.
- [Linter HTML pour email](https://elysiatools.com/fr/tools/email-html-linter): Vérifie la compatibilité cross-client des modèles HTML d'email : flex/grid non supporté, CSS non inline, pièges de rendu Word d'Outlook, problèmes de mise en page par tableaux et manques d'accessibilité. Couvre les limites connues de Gmail/Outlook/Apple Mail.
- [Verificateur d accessibilite](https://elysiatools.com/fr/tools/accessibility-checker): Detecte les problemes WCAG 2.1 courants dans du HTML, des pages ou des maquettes et fournit des corrections concretes
- [Auditeur de dépendances package.json](https://elysiatools.com/fr/tools/package-json-dependency-auditor): Audite un package.json pour l’hygiène des dépendances et la qualité des plages de versions, et peut inspecter l’arbre transitif depuis package-lock.json ou yarn.lock. Signale les doublons, wildcard/pré-version, clés non triées, métadonnées manquantes et dépendances runtime/dev mal classées.
- [Sync de palette Tailwind](https://elysiatools.com/fr/tools/tailwind-color-palette-sync): Entrez des HEX, choisissez le schéma de noms (échelle 50–950 / nom unique / imbrication) et générez le fragment theme.extend.colors de tailwind.config.ts avec les niveaux WCAG AA/AAA. Dark mode optionnel.
- [Generateur de rapport daudit daccessibilite](https://elysiatools.com/fr/tools/accessibility-audit-report-generator): Audite du HTML ou une URL pour detecter des problemes WCAG courants et exporte un PDF structure
- [Extracteur de palette couleur depuis image](https://elysiatools.com/fr/tools/image-color-palette-extractor): Charge une image, extrait les couleurs dominantes et exporte des tokens reutilisables avec controle du contraste
- [Analyseur d image VP8](https://elysiatools.com/fr/tools/vp8-image-analyzer): Analyse une image WebP/VP8 avec Sharp, genere une displacement map en niveaux de gris et rend un relief 3D avec Three.js

## Exemples

- [Exemples de Traitement d'Images Android Java](https://elysiatools.com/fr/samples/android-image-processing-java): Exemples de traitement d'images Android Java incluant lecture/écriture, mise à l'échelle et conversion de format
- [Exemples de Traitement d'Images Android Kotlin](https://elysiatools.com/fr/samples/android-image-processing-kotlin): Exemples de traitement d'images Android Kotlin incluant lecture/écriture, mise à l'échelle et conversion de format
- [Exemples de Traitement d'Images Web Python](https://elysiatools.com/fr/samples/web-image-processing-python): Exemples de traitement d'images Web Python utilisant PIL/Pillow incluant la lecture, l'enregistrement, le redimensionnement et la conversion de format
- [Exemples de Traitement d'Images Web Rust](https://elysiatools.com/fr/samples/web-image-processing-rust): Exemples de traitement d'images Web Rust incluant lecture/écriture, redimensionnement et conversion de format

## Contenu associé

- [Outils de conversion de formats d image et d export anime](https://elysiatools.com/fr/hubs/image-convert): Comparez les convertisseurs d image pour JPG, PNG, GIF, AVIF, WebP, TIFF, ICO, base64 et les exports orientes animation dans un meme hub.
- [Outils de nettoyage, finition et preparation d images en lot](https://elysiatools.com/fr/hubs/image-utility): Regroupe dans un meme hub les outils de nettoyage d image, rognage, marge, encadrement, redimensionnement et compression par lot, filigrane et finition visuelle.
- [Outils de métadonnées image, EXIF et nettoyage de confidentialité](https://elysiatools.com/fr/hubs/image-metadata): Comparez les visionneuses de métadonnées image, inspecteurs EXIF/IPTC/XMP, correcteurs d’orientation, éditeurs de métadonnées et outils de nettoyage de confidentialité.
- [Outils de Nettoyage, Redimensionnement et Amélioration d’Image](https://elysiatools.com/fr/hubs/image-cleanup-resize-and-detail-enhancement): Préparez les images avec correction d’orientation, recadrage, réduction du bruit, redimensionnement, netteté et conversion par lots.
