Hauptfunktionen des Dockerfile-Formatierers
- Bereinigt Einrückung, Abstände und Zeilenumbrüche für Dockerfiles und Containerfiles
- Normalisiert mehrzeilige RUN-Anweisungen mit konsistenten Backslashes und Einrückung
- Respektiert Dockerfile-Semantik – keine Neuanordnung von Anweisungen, keine Änderungen an Shell-Logik
- Deterministische Ausgabe: gleiche Eingabe und Version ⇒ gleiches formatiertes Dockerfile
- Perfekter Begleiter für Pre-Commit-Hooks, Monorepos und CI-Jobs mit dprint
- Webbasierter Editor mit Syntaxhervorhebung, diff-freundlicher Ausgabe und Kopier-/Download-Aktionen
- Funktioniert gut mit Multi-Stage-Builds, Build-Args und typischen Node/.NET/Go-Images
🛠️ So formatieren Sie ein Dockerfile for dockerfile-formatter
1. Fügen Sie Ihr Dockerfile ein oder laden Sie es hoch
Fügen Sie Ihr Dockerfile in den Editor ein oder ziehen Sie ein Dockerfile/Containerfile aus Ihrem Projekt herein. Kleine Ausschnitte (wie ein einzelner FROM/RUN-Block) funktionieren ebenfalls, wenn Sie nur experimentieren möchten.
2. Formatter ausführen
Klicken Sie auf "Formatieren". Das Tool sendet Ihre Quelle an ein sicheres, dprint-basiertes Backend, das Einrückungen, Abstände, Array-artige Anweisungen und mehrzeilige RUN-Ketten anpasst, ohne die Ausführungslogik zu verändern.
3. Überprüfen, Kopieren oder Herunterladen
Vergleichen Sie die formatierte Ausgabe mit Ihrer ursprünglichen Datei. Wenn Sie zufrieden sind, kopieren Sie das Ergebnis zurück in Ihr Repository oder laden Sie das formatierte Dockerfile herunter, um es direkt zu committen.
Technische Details
Unterstützte Dateitypen
Der Formatter zielt auf Docker-Build-Anweisungen und kompatible Container-Build-Dateien ab, die in Docker, Podman und ähnlichen Tools verwendet werden.
| Typ | Beispiel | Hinweise |
|---|---|---|
| Dockerfile | Dockerfile, Dockerfile.prod, Dockerfile.node18 | Klassische Docker-Build-Dateien für Images |
| Containerfile | Containerfile | Podman / Buildah Stil Konfigurationsdateien |
| Inline-Ausschnitte | FROM node:18-alpine | Kleine Fragmente oder Beispiele werden ebenfalls für schnelle Tests unterstützt |
Formatierungsverhalten (dprint-Stil)
Hochrangige Verhaltensweisen des zugrunde liegenden dprint-Plugins, das von diesem Tool verwendet wird:
| Bereich | Verhalten | Beispiel |
|---|---|---|
| Einrückung | Normalisiert die Einrückung für fortgesetzte Zeilen in RUN- und anderen Anweisungen | RUN set -eux; \\n npm ci; \\n npm cache clean --force |
| Listen & Arrays | Bereinigt Abstände in JSON-artigen Arrays für CMD/ENTRYPOINT/HEALTHCHECK | CMD ["npm", "start"] → CMD ["npm", "start"] (aber mit konsistenten Leerzeichen) |
| Abstände | Entfernt überflüssige Leerzeichen um Anweisungen, während die Bedeutung erhalten bleibt | ENV NODE_ENV=production |
| Zeilenumbruch | Kann lange RUN-Ketten für bessere Lesbarkeit umbrechen, ohne die Reihenfolge zu ändern | Lange Shell-Pipelines werden in Diffs leichter zu überprüfen und zu scannen |
| Kommentare | Bewahrt vollständige und Inline-Kommentare neben Anweisungen | # base image for build stage\nFROM node:18 AS build |
Nicht-Ziele
Dieser Formatierer ist bewusst auf das Layout beschränkt, damit Sie ihn mit anderen DevOps-Tools kombinieren können:
| Element | Behandelt? | Hinweise |
|---|---|---|
| Hadolint-ähnliches Linting | ❌ | Verwenden Sie hadolint oder ähnliche Tools für Best-Practice-Prüfungen und Warnungen |
| Sicherheitsscans | ❌ | Keine CVE- oder Schwachstellenscans von Images oder Registries |
| Image-Erstellung | ❌ | Führt docker build nicht aus und interagiert nicht mit Docker Engine |
| Anweisungsneuanordnung | ❌ | Ordnet Anweisungen niemals neu; nur Einrückungen und Leerzeichen ändern sich |
| Basis-Image-Härtung | ❌ | Empfiehlt keine Basis-Images; es formatiert, was Sie bereitstellen |
CLI & CI-Äquivalente
Gefällt Ihnen das Ergebnis? Spiegeln Sie das gleiche Verhalten lokal und in CI mit dprint und ergänzenden Tools.
Universal (dprint)
Dprint initialisieren und Dockerfile-Plugin hinzufügen
dprint init
# In dprint.json, add:
# {
# "plugins": ["https://plugins.dprint.dev/dockerfile-0.x.wasm"]
# }
# Then format your Dockerfiles:
dprint fmt DockerfileNächste Entsprechung zu diesem Online-Formatierer, sodass Entwickler und CI denselben Stil verwenden.
Linux/macOS
Mit hadolint linten (ergänzt die Formatierung)
hadolint DockerfileKombinieren Sie Formatierung (Stil) mit Linting (Best Practices, kleinere Images, Healthchecks).
Git / pre-commit
Dprint auf geänderte Dockerfiles vor dem Commit ausführen
# .pre-commit-config.yaml (conceptual)
- repo: local
hooks:
- id: dprint-dockerfile
name: dprint Dockerfiles
entry: dprint fmt
language: system
files: "(Dockerfile|Containerfile)$"Stellt sicher, dass jede in den Hauptzweig gemergte Dockerfile bereits formatiert ist.
Häufige Anwendungsfälle
Entwicklungs- & Plattformtechnik
- Dockerfiles vor Code-Review über Microservices hinweg normalisieren
- Alte Dockerfiles bereinigen, die von mehreren Teams oder Vorlagen übernommen wurden
- Stil beim Migrieren von Images, Basis-Betriebssystemversionen oder Build-Strategien standardisieren
# Typisches mehrstufiges Dockerfile (sauber, reviewfreundlich)
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"]CI/CD-Pipelines
- Builds fehlschlagen lassen, wenn Dockerfiles nicht korrekt formatiert sind
- Stil auf Feature-Branches automatisch über Pre-Commit-Hooks oder CI-Jobs korrigieren
- Docker-Konfiguration in langlebigen Monorepos und Plattform-Repos lesbar halten
# Beispiel-Git-Pre-Commit-Hook (Pseudocode)
#!/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 $changedTeam-Einarbeitung & Konsistenz
- Neuen Teammitgliedern einen einheitlichen, vorgegebenen Dockerfile-Stil zur Verfügung stellen
- Code-Stil-Debatten aus PRs entfernen: Der Formatter ist die einzige Wahrheit
- Lokale Formatierung, Repo-Hooks und CI-Jobs auf dieselbe dprint-Konfiguration abstimmen
# Beispielausschnitt für docs/onboarding.md
1. dprint lokal installieren
2. Gemeinsame dprint.json aus dem Plattform-Repo kopieren
3. `dprint fmt Dockerfile` vor dem Öffnen eines Pull Requests ausführen❓ Frequently Asked Questions
Ändert die Formatierung, wie mein Image gebaut wird?
Ist das dasselbe wie Linting mit hadolint?
Kann ich diesen Stil in CI durchsetzen?
Unterstützt es Multi-Stage-Builds?
Wird mein Dockerfile auf einen Server hochgeladen?
Pro Tips
Führen Sie die Formatierung automatisch in CI aus, damit der Dockerfile-Stil nie zwischen Diensten oder Teams abweicht.
Kombinieren Sie diesen Formatierer mit einem Linter wie hadolint, um sowohl Layout als auch Best-Practice-Richtlinien abzudecken.
Vereinbaren Sie früh in einem Projekt eine standardisierte Multi-Stage-Dockerfile-Vorlage und halten Sie sie formatiert, damit neue Dienste derselben Struktur folgen.
Wenn Sie in einem Monorepo arbeiten, teilen Sie eine einzige dprint-Konfiguration, damit Anwendungscode, Infrastrukturcode und Dockerfiles konsistente Konventionen verwenden.
Additional Resources
Other Tools
- CSS-Verschönerer
- HTML-Verschönerer
- JavaScript-Verschönerer
- PHP-Verschönerer
- Farbauswahl
- Sprite-Extraktor
- Base64-Decoder
- Base64-Encoder
- Csharp-Formatierer
- CSV-Formatierer
- Elm-Formatierer
- ENV-Formatierer
- Go-Formatierer
- GraphQL-Formatierer
- HCL-Formatierer
- INI-Formatierer
- JSON-Formatierer
- LaTeX-Formatierer
- Markdown-Formatierer
- Objective-C-Formatierer
- Php Formatter
- Proto-Formatierer
- Python-Formatierer
- Ruby-Formatierer
- Rust-Formatierer
- Scala-Formatierer
- Shell-Skript-Formatierer
- SQL-Formatierer
- SVG-Formatierer
- Swift-Formatierer
- TOML-Formatierer
- Typescript Formatter
- XML-Formatierer
- YAML-Formatierer
- Yarn-Formatierer
- CSS-Minifizierer
- Html Minifier
- Javascript Minifier
- JSON-Minifizierer
- XML-Minifizierer
- HTTP-Header-Betrachter
- PDF zu Text
- Regex-Tester
- SERP-Rang-Prüfer
- Whois-Abfrage