Loading…

Informazioni Formattatore Dockerfile Online Gratuito

Dockerfile disordinato? Indentazione rotta, spaziatura incoerente e catene RUN illeggibili? Questo Formattatore Dockerfile utilizza un motore basato su dprint (tramite un backend sicuro) per normalizzare i tuoi Dockerfile e Containerfile con un layout pulito e opinato. Mantiene le tue istruzioni esattamente al loro posto rendendo il file più facile da revisionare, versionare e automatizzare tra gli ambienti.

Caratteristiche Principali del Formattatore Dockerfile

  • Pulisce indentazione, spaziatura e a capo per Dockerfile e Containerfile
  • Normalizza le istruzioni RUN multi-linea con backslash e indentazione coerenti
  • Rispetta la semantica Dockerfile – nessun riordino istruzioni, nessuna modifica alla logica shell
  • Output deterministico: stesso input e versione ⇒ stesso Dockerfile formattato
  • Compagno perfetto per hook pre-commit, monorepo e job CI che utilizzano dprint
  • Editor basato su web con evidenziazione sintassi, output diff-friendly e azioni copia/download
  • Funziona bene con build multi-stage, argomenti di build e immagini tipiche Node/.NET/Go

🛠️ Come Formattare un Dockerfile for dockerfile-formatter

1

1. Incolla o Carica il Tuo Dockerfile

Incolla il tuo Dockerfile nell'editor o rilascia un Dockerfile/Containerfile dal tuo progetto. Anche piccoli frammenti (come un singolo blocco FROM/RUN) funzionano se vuoi solo sperimentare.

2

2. Esegui il Formattatore

Clicca "Formatta". Lo strumento invia il tuo codice sorgente a un backend sicuro basato su dprint che regola l'indentazione, la spaziatura, le istruzioni in stile array e le catene RUN multi-linea senza toccare la logica di esecuzione.

3

3. Rivedi, Copia o Scarica

Confronta l'output formattato con il tuo file originale. Quando sei soddisfatto, copia il risultato nel tuo repository o scarica il Dockerfile formattato per commitarlo direttamente.

Dettagli Tecnici

Tipi di File Supportati

Il formattatore si rivolge alle istruzioni di build di Docker e ai file di build di container compatibili utilizzati in Docker, Podman e strumenti simili.

TipoEsempioNote
DockerfileDockerfile, Dockerfile.prod, Dockerfile.node18File di build Docker classici per immagini
ContainerfileContainerfileFile di configurazione in stile Podman / Buildah
Frammenti in lineaFROM node:18-alpineSono supportati anche piccoli frammenti o esempi per test rapidi

Comportamento di Formattazione (stile dprint)

Comportamenti di alto livello del plugin dprint sottostante utilizzato da questo strumento:

AreaComportamentoEsempio
IndentazioneNormalizza l'indentazione per le righe continuate in RUN e altre istruzioniRUN set -eux; \\n npm ci; \\n npm cache clean --force
Liste e arrayPulisce la spaziatura negli array in stile JSON per CMD/ENTRYPOINT/HEALTHCHECKCMD ["npm", "start"] → CMD ["npm", "start"] (ma con spazi coerenti)
SpaziaturaRimuove gli spazi ridondanti attorno alle istruzioni preservandone il significatoENV NODE_ENV=production
A capo rigaPuò riorganizzare le lunghe catene RUN per la leggibilità senza cambiare l'ordineLe lunghe pipeline di shell diventano più facili da scansionare e rivedere nei diff
CommentiPreserva i commenti a riga intera e in linea accanto alle istruzioni# base image for build stage\nFROM node:18 AS build

Obiettivi non inclusi

Questo formattatore è intenzionalmente limitato al layout, quindi puoi combinarlo con altri strumenti DevOps:

ElementoGestito?Note
Linting in stile HadolintUsa hadolint o strumenti simili per controlli e avvisi sulle migliori pratiche
Scansione della sicurezzaNessuna scansione CVE o vulnerabilità di immagini o registri
Creazione di immaginiNon esegue docker build né interagisce con Docker Engine
Riordinamento delle istruzioniNon riordina mai le istruzioni; cambia solo indentazione e spazi bianchi
Rafforzamento dell'immagine baseNon raccomanda immagini base; formatta qualsiasi cosa tu fornisca

CLI & Equivalenti CI

Ti piace il risultato? Replica lo stesso comportamento localmente e in CI con dprint e strumenti complementari.

Universale (dprint)

Inizializza dprint e aggiungi il plugin Dockerfile

dprint init
# In dprint.json, aggiungi:
# {
#   "plugins": ["https://plugins.dprint.dev/dockerfile-0.x.wasm"]
# }
# Poi formatta i tuoi Dockerfile:
dprint fmt Dockerfile

La corrispondenza più vicina a questo formattatore online, così sviluppatori e CI usano lo stesso stile.

Linux/macOS

Linting con hadolint (complementa la formattazione)

hadolint Dockerfile

Combina la formattazione (stile) con il linting (migliori pratiche, immagini più piccole, healthcheck).

Git / pre-commit

Esegui dprint sui Dockerfile modificati prima del commit

# .pre-commit-config.yaml (concettuale)
- repo: local
  hooks:
    - id: dprint-dockerfile
      name: dprint Dockerfiles
      entry: dprint fmt
      language: system
      files: "(Dockerfile|Containerfile)$"

Garantisce che ogni Dockerfile unito al main sia già formattato.

Casi d'Uso Comuni

Sviluppo e Ingegneria della Piattaforma

  • Normalizza i Dockerfile tra i microservizi prima della revisione del codice
  • Pulisci i Dockerfile legacy ereditati da più team o template
  • Standardizza lo stile durante la migrazione di immagini, versioni del sistema operativo base o strategie di build
# Dockerfile multi-stage tipico (pulito, facile da revisionare)
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"]

Pipeline CI/CD

  • Fai fallire le build quando i Dockerfile non sono formattati correttamente
  • Correggi automaticamente lo stile sui branch delle feature tramite hook pre-commit o job CI
  • Mantieni la configurazione Docker leggibile in monorepo e repository di piattaforma di lunga durata
# Esempio di hook Git pre-commit (pseudo-codice)
#!/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 $changed

Onboarding del Team e Coerenza

  • Fornisci ai nuovi membri del team un unico stile Dockerfile da seguire
  • Rimuovi i dibattiti sullo stile del codice dalle PR: lascia che il formatter sia la fonte di verità
  • Allinea la formattazione locale, gli hook del repository e i job CI attorno alla stessa configurazione dprint
# Esempio di snippet per docs/onboarding.md
1. Installa dprint localmente
2. Copia il dprint.json condiviso dal repository della piattaforma
3. Esegui `dprint fmt Dockerfile` prima di aprire una pull request

❓ Frequently Asked Questions

La formattazione cambia come viene costruita la mia immagine?

No. Il formatter tocca solo spazi bianchi, indentazione e a capo delle righe. Preserva l'ordine e il contenuto delle istruzioni del tuo Dockerfile. Finché il Dockerfile originale era valido, la build dell'immagine risultante dovrebbe comportarsi allo stesso modo.

È lo stesso del linting con hadolint?

No. Questo strumento è un formatter, non un linter. Corregge problemi di stile e layout (spaziature, indentazione, a capo), ma non ti avviserà sulle best practice (come usare immagini base specifiche, healthcheck o dimensioni dei layer). Per quello, combinalo con hadolint o un altro linter per Dockerfile.

Posso imporre questo stile in CI?

Sì. Puoi configurare dprint con il plugin Dockerfile nel tuo repository ed eseguire `dprint fmt` (o `dprint check`) nella tua pipeline CI. In questo modo, la CI può fallire quando i Dockerfile si discostano dallo stile previsto, corrispondendo a ciò che vedi in questo formatter online.

Supporta le build multi-stage?

Sì. I Dockerfile multi-stage sono formattati come qualsiasi altro file. Ogni istruzione FROM, COPY, RUN e ENV è preservata, e il layout è reso coerente tra tutti gli stage senza cambiare la semantica di build.

Il mio Dockerfile viene caricato su un server?

Per questo strumento, la formattazione viene eseguita tramite un endpoint backend sicuro utilizzando un formatter basato su dprint. Il tuo sorgente viene utilizzato per calcolare la risposta e non è destinato a essere memorizzato a lungo termine. Come sempre, evita di incollare dettagli infrastrutturali altamente confidenziali in qualsiasi strumento online a meno che non controlli l'intero stack.

Pro Tips

Best Practice

Esegui la formattazione automaticamente in CI affinché lo stile dei Dockerfile non diverga mai tra servizi o team.

Best Practice

Abbina questo formattatore a un linter come hadolint per coprire sia il layout che le linee guida sulle migliori pratiche.

Best Practice

Concorda su un modello standard di Dockerfile multi-stage all'inizio di un progetto e mantienilo formattato in modo che i nuovi servizi seguano la stessa struttura.

Best Practice

Se lavori in un monorepo, condividi una singola configurazione dprint in modo che il codice dell'applicazione, il codice dell'infrastruttura e i Dockerfile utilizzino convenzioni coerenti.

Additional Resources

Other Tools