Principais Características do Formatador de Dockerfile
- Limpa indentação, espaçamento e quebra de linha para Dockerfiles e Containerfiles
- Normaliza instruções RUN multi-linha com barras invertidas e indentação consistentes
- Respeita a semântica do Dockerfile – sem reordenar instruções, sem alterar lógica de shell
- Saída determinística: mesma entrada e versão ⇒ mesmo Dockerfile formatado
- Companheiro perfeito para hooks de pre-commit, monorepos e jobs de CI usando dprint
- Editor baseado na web com destaque de sintaxe, saída amigável para diff e ações de copiar/baixar
- Funciona bem com builds multiestágio, argumentos de build e imagens típicas de Node/.NET/Go
🛠️ Como Formatador um Dockerfile for dockerfile-formatter
1. Cole ou Carregue Seu Dockerfile
Cole seu Dockerfile no editor ou arraste um Dockerfile/Containerfile do seu projeto. Pequenos trechos (como um único bloco FROM/RUN) também funcionam se você quiser apenas experimentar.
2. Executar o Formatador
Clique em "Formatar". A ferramenta envia seu código para um backend seguro baseado em dprint que ajusta indentação, espaçamento, instruções em estilo de array e cadeias RUN multilinha sem tocar na lógica de execução.
3. Revisar, Copiar ou Baixar
Compare a saída formatada com seu arquivo original. Quando estiver satisfeito, copie o resultado de volta para seu repositório ou baixe o Dockerfile formatado para commit direto.
Detalhes Técnicos
Tipos de Arquivo Suportados
O formatador visa instruções de build do Docker e arquivos de build de contêiner compatíveis usados no Docker, Podman e ferramentas similares.
| Tipo | Exemplo | Notas |
|---|---|---|
| Dockerfile | Dockerfile, Dockerfile.prod, Dockerfile.node18 | Arquivos clássicos de build do Docker para imagens |
| Containerfile | Containerfile | Arquivos de configuração no estilo Podman/Buildah |
| Trechos inline | FROM node:18-alpine | Fragmentos pequenos ou exemplos também são suportados para testes rápidos |
Comportamento de Formatação (estilo dprint)
Comportamentos de alto nível do plugin dprint subjacente usado por esta ferramenta:
| Área | Comportamento | Exemplo |
|---|---|---|
| Indentação | Normaliza a indentação para linhas continuadas em RUN e outras instruções | RUN set -eux; \\n npm ci; \\n npm cache clean --force |
| Listas & arrays | Limpa espaçamento em arrays no estilo JSON para CMD/ENTRYPOINT/HEALTHCHECK | CMD ["npm", "start"] → CMD ["npm", "start"] (mas com espaços consistentes) |
| Espaçamento | Remove espaços redundantes ao redor das instruções preservando o significado | ENV NODE_ENV=production |
| Quebra de linha | Pode reformatar cadeias RUN longas para legibilidade sem alterar a ordem | Pipelines longos de shell tornam-se mais fáceis de escanear e revisar em diffs |
| Comentários | Preserva comentários de linha completa e inline ao lado das instruções | # base image for build stage\nFROM node:18 AS build |
Não objetivos
Este formatador é intencionalmente limitado ao layout, para que você possa combiná-lo com outras ferramentas DevOps:
| Item | Tratado? | Notas |
|---|---|---|
| Lint ao estilo Hadolint | ❌ | Use hadolint ou ferramentas similares para verificações de melhores práticas e avisos |
| Varredura de segurança | ❌ | Sem varredura de CVE ou vulnerabilidades em imagens ou registros |
| Construção de imagem | ❌ | Não executa docker build nem interage com o Docker Engine |
| Reordenação de instruções | ❌ | Nunca reordena instruções; apenas indentação e espaçamento mudam |
| Reforço de imagem base | ❌ | Não recomenda imagens base; formata o que você fornecer |
CLI & Equivalentes em CI
Gostou do resultado? Reflita o mesmo comportamento localmente e no CI com dprint e ferramentas complementares.
Universal (dprint)
Inicialize dprint e adicione o plugin Dockerfile
dprint init
# Em dprint.json, adicione:
# {
# "plugins": ["https://plugins.dprint.dev/dockerfile-0.x.wasm"]
# }
# Então formate seus Dockerfiles:
dprint fmt DockerfileCorrespondência mais próxima a este formatador online, para que desenvolvedores e CI usem o mesmo estilo.
Linux/macOS
Lint com hadolint (complementa a formatação)
hadolint DockerfileCombine formatação (estilo) com linting (melhores práticas, imagens menores, healthchecks).
Git / pre-commit
Execute dprint em Dockerfiles alterados antes do commit
# .pre-commit-config.yaml (conceitual)
- repo: local
hooks:
- id: dprint-dockerfile
name: dprint Dockerfiles
entry: dprint fmt
language: system
files: "(Dockerfile|Containerfile)$"Garante que todo Dockerfile mesclado no main já esteja formatado.
Casos de Uso Comuns
Engenharia de Dev & Plataforma
- Normalizar Dockerfiles entre microsserviços antes da revisão de código
- Limpar Dockerfiles legados herdados de múltiplas equipes ou modelos
- Padronizar o estilo ao migrar imagens, versões do SO base ou estratégias de build
# Dockerfile multiestágio típico (limpo, amigável para revisão)
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 de CI/CD
- Falhar builds quando Dockerfiles não estão devidamente formatados
- Corrigir automaticamente o estilo em branches de feature via hooks de pre-commit ou jobs de CI
- Manter a configuração do Docker legível em monorepos e repositórios de plataforma de longa duração
# Exemplo de hook Git pre-commit (pseudo-código)
#!/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 $changedIntegração de Equipe & Consistência
- Oferecer aos novos membros da equipe um único estilo de Dockerfile opinativo para seguir
- Remover debates de estilo de código dos PRs: deixe o formatador ser a fonte da verdade
- Alinhar formatação local, hooks de repositório e jobs de CI em torno da mesma configuração dprint
# Exemplo de trecho para docs/onboarding.md
1. Instale o dprint localmente
2. Copie o dprint.json compartilhado do repositório da plataforma
3. Execute `dprint fmt Dockerfile` antes de abrir um pull request❓ Frequently Asked Questions
A formatação altera como minha imagem é construída?
Isso é o mesmo que linting com hadolint?
Posso impor este estilo no CI?
Ele suporta builds multiestágio?
Meu Dockerfile é enviado para um servidor?
Pro Tips
Execute a formatação automaticamente no CI para que o estilo do Dockerfile nunca varie entre serviços ou equipes.
Combine este formatador com um linter como hadolint para cobrir tanto o layout quanto as orientações de melhores práticas.
Defina um modelo padrão de Dockerfile multiestágio no início de um projeto e mantenha-o formatado para que novos serviços sigam a mesma estrutura.
Se você trabalha em um monorepo, compartilhe uma única configuração dprint para que o código do aplicativo, código de infraestrutura e Dockerfiles usem convenções consistentes.
Additional Resources
Other Tools
- Embelezador CSS
- Embelezador HTML
- Embelezador Javascript
- Embelezador PHP
- Seletor de Cores
- Extrator de Sprites
- Decodificador Base64
- Codificador Base64
- Formatador Csharp
- Formatador CSV
- Formatador Elm
- Formatador ENV
- Formatador Go
- Formatador GraphQL
- Formatador HCL
- Formatador INI
- Formatador JSON
- Formatador LaTeX
- Formatador Markdown
- Formatador Objective-C
- Php Formatter
- Formatador Proto
- Formatador Python
- Formatador Ruby
- Formatador Rust
- Formatador Scala
- Formatador de Script Shell
- Formatador SQL
- Formatador SVG
- Formatador Swift
- Formatador TOML
- Typescript Formatter
- Formatador XML
- Formatador YAML
- Formatador Yarn
- Minificador CSS
- Html Minifier
- Javascript Minifier
- Minificador JSON
- Minificador XML
- Visualizador de Cabeçalhos HTTP
- PDF para Texto
- Testador de Regex
- Verificador de Classificação SERP
- Consulta Whois