# Linter de Dockerfile (regras Hadolint)

Cole um Dockerfile e receba análise estática estilo Hadolint sem daemon Docker: tags da imagem base, USER root, sudo, higiene de apt/apk/yum/dnf, fixação de versões npm/pip/yarn, ADD vs COPY, fusão de camadas, pipefail, portas EXPOSE, segredos em ENV — 30+ regras por severidade com linha, motivo e exemplo de correção, mais o código anotado linha a linha.

> Página canônica: https://elysiatools.com/pt/tools/dockerfile-linter

- **Categoria:** Development

- **Palavras-chave:** dockerfile, hadolint, linter, boas práticas docker, imagem de contêiner

## Visão geral

IDs e severidades seguem as fontes do Hadolint v2.15 (DL4000 MAINTAINER=error, DL3025 CMD em shell=warning, HEALTHCHECK ausente DL3057 ignorado por padrão, opcional). A análise respeita a semântica do Dockerfile: diretiva # escape=, continuações de linha, heredocs do BuildKit (RUN <<EOF), forma de array JSON, reset de estado a cada FROM de builds multi-stage e supressão via # hadolint ignore=DLxxxx. Regras de gerenciadores de pacotes operam por tokens de comando (apt-get update sem rm -rf /var/lib/apt/lists na mesma RUN → DL3009 etc.); npm install sem @version → DL3016; pip install sem == e sem --no-cache-dir → DL3013/DL3042. BP001 é extensão da plataforma: lembrete de .dockerignore ao fazer COPY . .

## Entradas

- **Conteúdo do Dockerfile** (textarea): FROM node:20-alpine WORKDIR /app COPY . . RUN npm ci --omit=dev CMD \["node", "server.js"\]
- **Severidade mínima exibida** (select)
- **Incluir regra HEALTHCHECK (DL3057)** (checkbox)

## Quando usar

- Antes de commitar ou publicar uma imagem, para detectar FROM :latest, MAINTAINER, USER root e CMD em forma de shell.
- Ao revisar builds multi-stage ou RUN com apt/npm/pip, para verificar limpeza de cache, versões fixadas e fusão de camadas.
- Quando quiser filtrar só erros ou avisos e opcionalmente incluir a regra de HEALTHCHECK (DL3057).

## Como funciona

- Cole o Dockerfile no campo principal (textarea). A análise interpreta diretiva # escape=, continuações de linha, heredocs do BuildKit, forma JSON de CMD/ENTRYPOINT, reset de estado a cada FROM e comentários # hadolint ignore=DLxxxx.
- Escolha a severidade mínima: todos os achados (info), somente avisos e erros, ou somente erros. Marque se deseja incluir a regra HEALTHCHECK (DL3057).
- O resultado HTML lista cada regra (IDs alinhados ao Hadolint v2.15) com linha, motivo e correção sugerida, além da vista do código anotada. BP001 lembra de .dockerignore em COPY . .

## Casos de uso

- Revisar um Dockerfile legado com FROM :latest, apt-get sem limpeza, ADD, ENV com senha e USER root.
- Validar um build Node multi-stage com npm ci, USER não-root, CMD em JSON e HEALTHCHECK antes do deploy.
- Checar higiene de pacotes (apt/apk/yum, pip/npm sem versão) e lembrar .dockerignore em COPY . .

## Perguntas frequentes

### Preciso ter o Docker ou o Hadolint instalados?

Não. A análise é estática e roda no navegador, sem daemon Docker.

### Quais regras são aplicadas?

Mais de 30 regras no estilo Hadolint v2.15 (DL4000 MAINTAINER=error, DL3025 CMD em shell=warning, DL3009 limpeza de apt, DL3016/DL3013 pin de npm/pip, etc.) mais a extensão BP001 para .dockerignore.

### Como filtrar os resultados?

Use o seletor de severidade mínima: info (todos), warning (avisos e erros) ou error (somente erros). A regra HEALTHCHECK (DL3057) é opcional.

### O linter entende builds multi-stage e heredocs?

Sim. O estado é reiniciado a cada FROM; continuações de linha, arrays JSON e heredocs do BuildKit (RUN <<EOF) são interpretados corretamente.

### Posso silenciar uma regra específica?

Sim, com o comentário # hadolint ignore=DLxxxx na linha correspondente, como no Hadolint original.

## Ferramentas relacionadas

- [Verificador de acessibilidade para visao de cores](https://elysiatools.com/pt/tools/color-vision-accessibility-checker): Mede contraste WCAG, simula deficiencias de visao de cor e destaca areas de baixo contraste em capturas.
- [Linter de HTML para Email](https://elysiatools.com/pt/tools/email-html-linter): Verifica a compatibilidade entre clientes de templates HTML de email: flex/grid não suportado, CSS não inline, armadilhas de renderização Word do Outlook, problemas de layout com tabelas e falta de acessibilidade. Cobre limitações de Gmail/Outlook/Apple Mail.
- [Verificador de acessibilidade](https://elysiatools.com/pt/tools/accessibility-checker): Detecta problemas comuns de WCAG 2.1 em HTML, paginas ou imagens de design e retorna orientacoes praticas
- [Auditor de dependências do package.json](https://elysiatools.com/pt/tools/package-json-dependency-auditor): Audita um package.json quanto à higiene de dependências e qualidade das faixas de versão, e opcionalmente inspeciona a árvore transitiva a partir de package-lock.json ou yarn.lock. Sinaliza duplicatas, wildcard ou pre-release, chaves desordenadas, metadados ausentes e dependências runtime/dev mal classificadas.
- [Sincronizador de paleta Tailwind](https://elysiatools.com/pt/tools/tailwind-color-palette-sync): Insira HEX, escolha o esquema de nomes (escala 50–950 / nome único / aninhamento) e gere o fragmento theme.extend.colors do tailwind.config.ts com níveis WCAG AA/AAA. Dark mode opcional.
- [Gerador de relatorio de auditoria de acessibilidade](https://elysiatools.com/pt/tools/accessibility-audit-report-generator): Audita HTML ou URL em busca de problemas comuns de WCAG e exporta um PDF estruturado
- [Extrator de paleta de cores da imagem](https://elysiatools.com/pt/tools/image-color-palette-extractor): Envia uma imagem, extrai cores dominantes e exporta tokens prontos para codigo com checagem de contraste
- [Analisador de imagem VP8](https://elysiatools.com/pt/tools/vp8-image-analyzer): Analisa imagens WebP/VP8 com Sharp, gera um displacement map em escala de cinza e renderiza relevo 3D com Three.js

## Exemplos

- [Exemplos de Processamento de Imagem Android Java](https://elysiatools.com/pt/samples/android-image-processing-java): Exemplos de processamento de imagem Android Java incluindo leitura/escrita, dimensionamento e conversão de formato
- [Exemplos de Processamento de Imagem Android Kotlin](https://elysiatools.com/pt/samples/android-image-processing-kotlin): Exemplos de processamento de imagem Android Kotlin incluindo leitura/escrita, dimensionamento e conversão de formato
- [Exemplos de Processamento de Imagem Web Python](https://elysiatools.com/pt/samples/web-image-processing-python): Exemplos de processamento de imagem Web Python usando PIL/Pillow incluindo leitura, salvamento, redimensionamento e conversão de formato
- [Exemplos de Processamento de Imagem Web Rust](https://elysiatools.com/pt/samples/web-image-processing-rust): Exemplos de processamento de imagem Web Rust incluindo leitura/gravação, redimensionamento e conversão de formato

## Conteúdo relacionado

- [Ferramentas de conversao de formatos de imagem e exportacao animada](https://elysiatools.com/pt/hubs/image-convert): Compare conversores de imagem para JPG, PNG, GIF, AVIF, WebP, TIFF, ICO, base64 e saidas voltadas para animacao em um unico hub.
- [Ferramentas de limpeza, acabamento e preparo em lote de imagens](https://elysiatools.com/pt/hubs/image-utility): Reune em um so hub ferramentas para limpar imagens, recortar bordas, adicionar margem ou moldura, redimensionar e comprimir em lote, aplicar marca d agua e dar acabamento visual.
- [Ferramentas de metadados de imagem, EXIF e limpeza de privacidade](https://elysiatools.com/pt/hubs/image-metadata): Compare visualizadores de metadados, inspetores EXIF/IPTC/XMP, corretores de orientação, editores de metadados e limpeza de privacidade para fluxos de publicação de fotos.
- [Ferramentas de Limpeza, Redimensionamento e Melhoria de Imagem](https://elysiatools.com/pt/hubs/image-cleanup-resize-and-detail-enhancement): Prepare imagens com correção de orientação, corte, redução de ruído, redimensionamento, nitidez e conversão em lote.
