Fonctionnalités Clés du Formateur Dockerfile
- Nettoie l'indentation, l'espacement et le retour à la ligne pour les Dockerfiles et Containerfiles
- Normalise les instructions RUN multi-lignes avec des barres obliques inverses et une indentation cohérentes
- Respecte la sémantique Dockerfile – pas de réorganisation des instructions, pas de modification de la logique shell
- Sortie déterministe : même entrée et version ⇒ même Dockerfile formaté
- Compagnon parfait pour les hooks pre-commit, les monorepos et les jobs CI utilisant dprint
- Éditeur web avec coloration syntaxique, sortie adaptée aux diffs et actions de copie/téléchargement
- Fonctionne bien avec les builds multi-étapes, les arguments de build et les images typiques Node/.NET/Go
🛠️ Comment Formater un Dockerfile for dockerfile-formatter
1. Collez ou Téléchargez Votre Dockerfile
Collez votre Dockerfile dans l'éditeur ou déposez un Dockerfile/Containerfile de votre projet. De petits extraits (comme un seul bloc FROM/RUN) fonctionnent également si vous souhaitez simplement expérimenter.
2. Exécuter le Formateur
Cliquez sur "Formater". L'outil envoie votre source à un backend sécurisé basé sur dprint qui ajuste l'indentation, l'espacement, les instructions de style tableau et les chaînes RUN multilignes sans toucher à la logique d'exécution.
3. Vérifier, Copier ou Télécharger
Comparez la sortie formatée avec votre fichier original. Lorsque vous êtes satisfait, copiez le résultat dans votre dépôt ou téléchargez le Dockerfile formaté pour le valider directement.
Détails Techniques
Types de Fichiers Pris en Charge
Le formateur cible les instructions de construction Docker et les fichiers de construction de conteneurs compatibles utilisés avec Docker, Podman et des outils similaires.
| Type | Exemple | Notes |
|---|---|---|
| Dockerfile | Dockerfile, Dockerfile.prod, Dockerfile.node18 | Fichiers de construction Docker classiques pour les images |
| Containerfile | Containerfile | Fichiers de configuration de style Podman / Buildah |
| Extraits en ligne | FROM node:18-alpine | Les petits fragments ou exemples sont également pris en charge pour des tests rapides |
Comportement de Formatage (style dprint)
Comportements de haut niveau du plugin dprint sous-jacent utilisé par cet outil :
| Domaine | Comportement | Exemple |
|---|---|---|
| Indentation | Normalise l'indentation pour les lignes continues dans RUN et autres instructions | RUN set -eux; \\n npm ci; \\n npm cache clean --force |
| Listes & tableaux | Nettoie l'espacement dans les tableaux de style JSON pour CMD/ENTRYPOINT/HEALTHCHECK | CMD ["npm", "start"] → CMD ["npm", "start"] (mais avec des espaces cohérents) |
| Espacement | Supprime les espaces redondants autour des instructions tout en préservant le sens | ENV NODE_ENV=production |
| Retour à la ligne | Peut reformater les longues chaînes RUN pour une meilleure lisibilité sans changer l'ordre | Les longs pipelines shell deviennent plus faciles à parcourir et à examiner dans les diffs |
| Commentaires | Préserve les commentaires en ligne et en fin de ligne à côté des instructions | # base image for build stage\nFROM node:18 AS build |
Objectifs non visés
Ce formateur est délibérément limité à la mise en page, vous permettant de le combiner avec d'autres outils DevOps :
| Élément | Pris en charge ? | Notes |
|---|---|---|
| Vérification de style Hadolint | ❌ | Utilisez hadolint ou des outils similaires pour les vérifications et alertes de bonnes pratiques |
| Analyse de sécurité | ❌ | Aucune analyse CVE ou de vulnérabilité des images ou registres |
| Construction d'images | ❌ | N'exécute pas docker build ni n'interagit avec Docker Engine |
| Réorganisation des instructions | ❌ | Ne réorganise jamais les instructions ; seuls l'indentation et les espaces changent |
| Renforcement de l'image de base | ❌ | Ne recommande pas d'images de base ; il formate ce que vous fournissez |
Équivalents CLI & CI
Vous aimez le résultat ? Reproduisez le même comportement localement et en CI avec dprint et des outils complémentaires.
Universel (dprint)
Initialiser dprint et ajouter le plugin Dockerfile
dprint init
# Dans dprint.json, ajoutez :
# {
# "plugins": ["https://plugins.dprint.dev/dockerfile-0.x.wasm"]
# }
# Puis formatez vos Dockerfiles :
dprint fmt DockerfileCorrespondance la plus proche avec ce formateur en ligne, pour que développeurs et CI utilisent le même style.
Linux/macOS
Vérifier avec hadolint (complète le formatage)
hadolint DockerfileCombinez le formatage (style) avec la vérification (bonnes pratiques, images plus petites, contrôles de santé).
Git / pre-commit
Exécuter dprint sur les Dockerfiles modifiés avant commit
# .pre-commit-config.yaml (conceptuel)
- repo: local
hooks:
- id: dprint-dockerfile
name: dprint Dockerfiles
entry: dprint fmt
language: system
files: "(Dockerfile|Containerfile)$"Garantit que chaque Dockerfile fusionné dans main est déjà formaté.
Cas d'utilisation courants
Ingénierie Dev & Plateforme
- Normaliser les Dockerfiles entre les microservices avant la revue de code
- Nettoyer les Dockerfiles hérités de plusieurs équipes ou modèles
- Standardiser le style lors de la migration d'images, de versions d'OS de base ou de stratégies de construction
# Dockerfile multi-étapes typique (propre, facile à réviser)
FROM node:18 AS build
WORKDIR /app
COPY package*.json ./
RUN npm ci && npm cache clean --force
COPY . .
RUN npm run build
FROM node:18-alpine
WORKDIR /app
COPY --from=build /app/dist ./
CMD ["node", "index.js"]Pipelines CI/CD
- Échouer les builds lorsque les Dockerfiles ne sont pas correctement formatés
- Corriger automatiquement le style sur les branches de fonctionnalités via des hooks pre-commit ou des jobs CI
- Maintenir la configuration Docker lisible dans les monorepos et dépôts de plateforme de longue durée
# Exemple de hook Git pre-commit (pseudo-code)
#!/bin/sh
changed=$(git diff --cached --name-only --diff-filter=ACM | grep -E 'Dockerfile|Containerfile' || true)
[ -z "$changed" ] && exit 0
dprint fmt $changed
git add $changedIntégration d'équipe et cohérence
- Donner aux nouveaux membres de l'équipe un style Dockerfile unique et opinatif à suivre
- Supprimer les débats sur le style de code des PR : laissez le formateur être la source de vérité
- Aligner le formatage local, les hooks de dépôt et les jobs CI autour de la même configuration dprint
# Exemple d'extrait pour docs/onboarding.md
1. Installez dprint localement
2. Copiez le dprint.json partagé depuis le dépôt de la plateforme
3. Exécutez `dprint fmt Dockerfile` avant d'ouvrir une pull request❓ Frequently Asked Questions
Le formatage change-t-il la façon dont mon image se construit ?
Est-ce la même chose que le linting avec hadolint ?
Puis-je imposer ce style en CI ?
Prend-il en charge les builds multi-étapes ?
Mon Dockerfile est-il téléchargé sur un serveur ?
Pro Tips
Exécutez le formatage automatiquement en CI pour que le style des Dockerfiles ne diverge jamais entre les services ou les équipes.
Associez ce formateur à un linter comme hadolint pour couvrir à la fois la mise en page et les conseils de bonnes pratiques.
Convenez d'un modèle standard de Dockerfile multi-étapes tôt dans un projet et maintenez-le formaté pour que les nouveaux services suivent la même structure.
Si vous travaillez dans un monorepo, partagez une seule configuration dprint pour que le code applicatif, le code d'infrastructure et les Dockerfiles utilisent des conventions cohérentes.
Additional Resources
Other Tools
- Beautificateur CSS
- Beautificateur HTML
- Beautificateur JavaScript
- Beautificateur PHP
- Sélecteur de couleurs
- Extracteur de sprites
- Décodeur Base64
- Encodeur Base64
- Formateur C#
- Formateur CSV
- Formateur Elm
- Formateur ENV
- Formateur Go
- Formateur GraphQL
- Formateur HCL
- Formateur INI
- Formateur JSON
- Formateur LaTeX
- Formateur Markdown
- Formateur Objective-C
- Php Formatter
- Formateur Proto
- Formateur Python
- Formateur Ruby
- Formateur Rust
- Formateur Scala
- Formateur de scripts shell
- Formateur SQL
- Formateur SVG
- Formateur Swift
- Formateur TOML
- Typescript Formatter
- Formateur XML
- Formateur YAML
- Formateur Yarn
- Minificateur CSS
- Html Minifier
- Javascript Minifier
- Minificateur JSON
- Minificateur XML
- Visualiseur d'en-têtes HTTP
- PDF vers Texte
- Testeur d'expressions régulières
- Vérificateur de classement SERP
- Recherche Whois