Belangrijkste Kenmerken van de Dockerfile Formatter
- Maakt inspringing, spaties en regelafbreking schoon voor Dockerfiles en Containerfiles
- Normaliseert multi-line RUN-instructies met consistente backslashes en inspringing
- Respecteert Dockerfile-semantiek – geen herschikking van instructies, geen wijzigingen in shell-logica
- Deterministische uitvoer: zelfde invoer en versie ⇒ zelfde geformatteerde Dockerfile
- Perfecte metgezel voor pre-commit hooks, monorepos en CI-taken met dprint
- Webbased editor met syntaxismarkering, diff-vriendelijke uitvoer en kopieer/download acties
- Werkt goed met multi-stage builds, build-argumenten en typische Node/.NET/Go-images
🛠️ Hoe een Dockerfile te Formatteren for dockerfile-formatter
1. Plak of Upload Uw Dockerfile
Plak uw Dockerfile in de editor of sleep een Dockerfile/Containerfile vanuit uw project. Kleine fragmenten (zoals een enkel FROM/RUN blok) werken ook als u gewoon wilt experimenteren.
2. Voer de Formatter Uit
Klik op "Formatteren". De tool stuurt uw broncode naar een veilige, op dprint gebaseerde backend die de inspringing, spaties, array-stijl instructies en multi-line RUN ketens aanpast zonder de uitvoeringslogica aan te raken.
3. Bekijk, Kopieer of Download
Vergelijk de geformatteerde uitvoer met uw originele bestand. Als u tevreden bent, kopieer het resultaat terug naar uw repository of download de geformatteerde Dockerfile om deze direct te committen.
Technische Details
Ondersteunde Bestandstypen
De formatter richt zich op Docker build-instructies en compatibele container build-bestanden die worden gebruikt in Docker, Podman en vergelijkbare tools.
| Type | Voorbeeld | Opmerkingen |
|---|---|---|
| Dockerfile | Dockerfile, Dockerfile.prod, Dockerfile.node18 | Klassieke Docker build-bestanden voor images |
| Containerfile | Containerfile | Podman / Buildah stijl configuratiebestanden |
| Inline fragmenten | FROM node:18-alpine | Kleine fragmenten of voorbeelden worden ook ondersteund voor snelle tests |
Opmaakgedrag (dprint-stijl)
Hoogwaardige gedragingen van de onderliggende dprint plugin die door deze tool wordt gebruikt:
| Gebied | Gedrag | Voorbeeld |
|---|---|---|
| Inspringing | Normaliseert inspringing voor doorlopende regels in RUN en andere instructies | RUN set -eux; \\n npm ci; \\n npm cache clean --force |
| Lijsten & arrays | Reinigt spaties in JSON-stijl arrays voor CMD/ENTRYPOINT/HEALTHCHECK | CMD ["npm", "start"] → CMD ["npm", "start"] (maar met consistente spaties) |
| Spaties | Verwijdert overbodige spaties rond instructies terwijl de betekenis behouden blijft | ENV NODE_ENV=production |
| Regelafbreking | Kan lange RUN ketens herschikken voor leesbaarheid zonder de volgorde te wijzigen | Lange shell pijplijnen worden gemakkelijker te scannen en te beoordelen in diffs |
| Opmerkingen | Behoudt volledige-regel en inline opmerkingen naast instructies | # basisafbeelding voor bouwfase\nFROM node:18 AS build |
Niet-doelen
Deze formatter is bewust beperkt tot lay-out, zodat je het kunt combineren met andere DevOps-tools:
| Item | Afgehandeld? | Notities |
|---|---|---|
| Hadolint-stijl linting | ❌ | Gebruik hadolint of vergelijkbare tools voor best-practice controles en waarschuwingen |
| Beveiligingsscanning | ❌ | Geen CVE- of kwetsbaarheidsscanning van afbeeldingen of registers |
| Afbeelding bouwen | ❌ | Voert docker build niet uit en communiceert niet met Docker Engine |
| Instructieherordening | ❌ | Hernooid nooit instructies; alleen inspringing en witruimte veranderen |
| Basisafbeelding verharding | ❌ | Adviseert geen basisafbeeldingen; het formatteert wat je aanlevert |
CLI & CI Equivalenten
Bevallen de resultaten? Spiegel hetzelfde gedrag lokaal en in CI met dprint en aanvullende tools.
Universeel (dprint)
Initialiseer dprint en voeg Dockerfile-plugin toe
dprint init
# In dprint.json, voeg toe:
# {
# "plugins": ["https://plugins.dprint.dev/dockerfile-0.x.wasm"]
# }
# Formatteer vervolgens je Dockerfiles:
dprint fmt DockerfileDichtstbijzijnde match met deze online formatter, zodat ontwikkelaars en CI dezelfde stijl gebruiken.
Linux/macOS
Lint met hadolint (complementeert formattering)
hadolint DockerfileCombineer formattering (stijl) met linting (best practices, kleinere afbeeldingen, healthchecks).
Git / pre-commit
Voer dprint uit op gewijzigde Dockerfiles voor commit
# .pre-commit-config.yaml (conceptueel)
- repo: local
hooks:
- id: dprint-dockerfile
name: dprint Dockerfiles
entry: dprint fmt
language: system
files: "(Dockerfile|Containerfile)$"Garandeert dat elke Dockerfile die naar main wordt samengevoegd al geformatteerd is.
Veelvoorkomende Gebruiksscenario's
Dev & Platform Engineering
- Normaliseer Dockerfiles over microservices heen voor code review
- Ruim verouderde Dockerfiles op die zijn overgenomen van meerdere teams of templates
- Standaardiseer stijl bij het migreren van images, basis-OS-versies of bouwstrategieën
# Typische multi-stage Dockerfile (schoon, review-vriendelijk)\nFROM node:18 AS build\nWORKDIR /app\nCOPY package*.json ./\nRUN npm ci && npm cache clean --force\nCOPY . .\nRUN npm run build\n\nFROM node:18-alpine\nWORKDIR /app\nCOPY --from=build /app/dist ./\nCMD ["node", "index.js"]CI/CD-pijplijnen
- Laat builds mislukken wanneer Dockerfiles niet correct zijn opgemaakt
- Stijl automatisch herstellen op feature branches via pre-commit hooks of CI-taken
- Houd Docker-configuratie leesbaar in langlevende monorepo's en platformrepo's
# Voorbeeld Git pre-commit hook (pseudo-code)\n#!/bin/sh\nchanged=$(git diff --cached --name-only --diff-filter=ACM | grep -E 'Dockerfile|Containerfile' || true)\n[ -z "$changed" ] && exit 0\ndprint fmt $changed\ngit add $changedTeamonboarding & consistentie
- Geef nieuwe teamleden één duidelijke Dockerfile-stijl om te volgen
- Verwijder code-stijl debatten uit PR's: laat de formatter de bron van waarheid zijn
- Breng lokale opmaak, repo-hooks en CI-taken in lijn met dezelfde dprint-configuratie
# Voorbeeld fragment voor docs/onboarding.md\n1. Installeer dprint lokaal\n2. Kopieer de gedeelde dprint.json van de platformrepo\n3. Voer `dprint fmt Dockerfile` uit voordat je een pull-request opent❓ Frequently Asked Questions
Verandert opmaak hoe mijn image wordt gebouwd?
Is dit hetzelfde als linten met hadolint?
Kan ik deze stijl afdwingen in CI?
Ondersteunt het multi-stage builds?
Wordt mijn Dockerfile geüpload naar een server?
Pro Tips
Voer automatisch formatteren uit in CI zodat de Dockerfile-stijl nooit afwijkt tussen services of teams.
Combineer deze formatter met een linter zoals hadolint om zowel lay-out als richtlijnen voor beste praktijken te dekken.
Spreek vroeg in een project een standaard multi-stage Dockerfile-sjabloon af en houd het geformatteerd zodat nieuwe services dezelfde structuur volgen.
Als je in een monorepo werkt, deel dan één dprint-configuratie zodat applicatiecode, infra-code en Dockerfiles consistente conventies gebruiken.
Additional Resources
Other Tools
- CSS Opmaker
- HTML Opmaker
- Javascript Opmaker
- PHP Opmaker
- Kleurkiezer
- Sprite Extractor
- Base64 Decoder
- Base64 Encoder
- Csharp Formatter
- Csv Formatter
- Elm Formatter
- ENV Formatter
- Go Formatter
- Graphql Formatter
- Hcl Formatter
- INI Formatter
- JSON Formatter
- Latex Formatter
- Markdown Formatter
- Objectivec Formatter
- Php Formatter
- Proto Formatter
- Python Formatter
- Ruby Formatter
- Rust Formatter
- Scala Formatter
- Shell Script Formatter
- SQL Formatter
- SVG Formatter
- Swift Formatter
- TOML Formatter
- Typescript Formatter
- XML Formatter
- YAML Formatter
- Yarn Formatter
- CSS Verkleiner
- Html Minifier
- Javascript Minifier
- JSON Verkleiner
- XML Verkleiner
- Http Headers Viewer
- PDF Naar Tekst
- Regex Tester
- Serp Rang Checker
- Whois Opzoeken