Omnikit
DesenvolvimentoArquivosFinançasTodas as ferramentas
Ctrl K
Ferramentas para desenvolvedoresFerramentas de arquivosCalculadoras financeirasTodas as ferramentas
InícioFerramentas para desenvolvedoresLinter de Dockerfile
EnglishالعربيةবাংলাDeutschEspañolFrançaisPolskiPortuguêsРусский

Linter de Dockerfile

desenvolvimento

Verifique um Dockerfile com 55 regras do hadolint: versões fixadas, usuário root, cache e mais

Funciona no seu navegador. Nada do que você digita é enviado a lugar nenhum. Verificado em 16 de outubro de 2026.

Um linter de Dockerfile lê o arquivo sem construí-lo e aponta as linhas arriscadas ou desperdiçadoras. Este aplica 55 das regras DL do hadolint, como DL3008 para pacotes do apt-get sem versão fixada e DL3002 para execução como root, e dá a cada achado sua linha, seu nível e sua correção. Ele roda no seu navegador, sem instalação e sem Docker.

Esta página foi traduzida automaticamente do original em inglês. Nenhuma pessoa revisou ainda a tradução; a versão em inglês é a que deve ser considerada. Ler o original em inglês

Em seguida:
  • Validador de arquivo .env Verifique um arquivo .env linha por linha como o dotenv o lê e converta-o para JSON ou YAML
  • systemd OnCalendar Tester Check a systemd timer OnCalendar= value and see its next run times, or convert cron

Como verificar um Dockerfile online

1

Cole o Dockerfile na caixa, abra o arquivo ou clique em Testar um exemplo.

2

Leia os achados, ordenados por linha: cada um tem um nível, seu código do hadolint, o que está errado e como corrigir.

3

Clique em um achado para ir até a linha dele, corrija e veja a lista se atualizar enquanto você digita.

4

Clique em Copiar relatório para levar os achados como texto, para um pull request ou um ticket.

Sobre o linter de Dockerfile

Um Dockerfile pode construir hoje e quebrar no mês que vem: uma imagem base sem versão fixada muda, um apt-get install pega uma versão nova, um cache deixado em uma camada deixa a imagem centenas de megabytes maior. Um linter pega isso antes de ir para produção. O hadolint é o padrão em pipelines de CI; esta página aplica as regras de Dockerfile dele no seu navegador.

O que ele verifica. Cada achado indica sua linha, seu código do hadolint, um nível e uma correção em uma linha. As regras se dividem em cinco grupos:

Grupo Exemplos
Builds reproduzíveis DL3006 imagem sem tag, DL3007 latest, DL3008 apt-get, DL3013 pip, DL3016 npm, DL3018 apk
Imagens menores DL3009 listas do apt, DL3015 recommends, DL3019 cache do apk, DL3042 cache do pip, DL3059 camadas RUN extras
Segurança DL3002 usuário root, DL3004 sudo, DL4006 pipefail
Correção DL3011 faixa de portas, DL3021 destino do COPY, DL3022 e DL3023 nomes de estágio, DL3044 ENV, DL3061 ordem
Intenção clara DL3000 WORKDIR, DL3003 cd, DL3020 ADD, DL3025 CMD em JSON, DL4000 MAINTAINER

Quão perto do hadolint ele fica. As regras foram escritas a partir do código-fonte do hadolint 2.12, e os testes usam as respostas do programa hadolint real para mais de 80 Dockerfiles: os mesmos códigos nas mesmas linhas, sempre. Builds multiestágio, ONBUILD, linhas de continuação, a diretiva escape e comentários # hadolint ignore= em linha se comportam como no hadolint. Os avisos SC do ShellCheck sobre o código de shell dentro das linhas RUN não estão incluídos.

Desligar uma regra. Coloque # hadolint ignore=DL3008 na linha antes de uma instrução para pular essa regra ali, ou # hadolint global ignore=DL3059 em qualquer lugar para pulá-la no arquivo inteiro. O resumo informa quantos achados foram desligados.

Tudo roda no seu navegador: o Dockerfile que você cola ou abre nunca é enviado.

Perguntas frequentes

O que significa DL3008 no hadolint?

DL3008 diz que uma linha apt-get install cita pacotes sem versão, então cada build pode instalar algo diferente. Escreva pacote=versão, como curl=7.88.1-10+deb12u5, e descubra a versão atual com apt-cache policy curl dentro da imagem base. Fixar versões torna a imagem reproduzível; atualize as versões de propósito, não por acidente.

Por que o último USER não deve ser root?

Um contêiner que roda como root tem direitos de root dentro dele, então um invasor que entre na aplicação pode fazer mais, e um erro em um volume montado pode alterar arquivos do host. Crie um usuário em um RUN, como useradd app, e termine o estágio com USER app. As etapas de build anteriores ainda podem rodar como root.

Por que apagar /var/lib/apt/lists no mesmo RUN?

Cada RUN cria uma camada, e um arquivo removido em uma camada posterior ainda ocupa espaço na anterior. O apt-get update baixa listas de pacotes de dezenas de megabytes, então remova-as no mesmo RUN com && rm -rf /var/lib/apt/lists/*. Removê-las em um RUN separado não economiza nada.

Como ignoro uma regra do hadolint em uma linha?

Escreva um comentário logo acima da instrução: # hadolint ignore=DL3008, ou vários códigos separados por vírgulas. Para desligar uma regra no arquivo inteiro, escreva # hadolint global ignore=DL3059 em qualquer lugar. Os dois funcionam no próprio hadolint e nesta página, e o resumo conta o que foi desligado.

É o mesmo que rodar o hadolint?

Para as regras de Dockerfile, sim: os 55 códigos DL, seus níveis e suas condições seguem o hadolint 2.12, e os testes comparam com o programa hadolint real em mais de 80 arquivos. Não estão incluídos os avisos SC do ShellCheck sobre o código de shell dentro das linhas RUN, nem as regras que precisam de um arquivo de configuração, como registries permitidos.

Devo usar COPY ou ADD em um Dockerfile?

Use COPY para arquivos e pastas. O ADD também baixa URLs e descompacta arquivos tar locais, o que é útil quando você quer exatamente isso e surpreendente quando não quer. O hadolint aponta ADD para um arquivo simples como DL3020, e um COPY seguido de tar -x do mesmo arquivo como DL3010, em que o ADD faria isso em um passo.

Fontes

  • hadolint, the Haskell Dockerfile Linter (GitHub, v2.12.0)The DL rules, their levels and their exact conditions; the binary is the reference the tests compare against
  • Docker Docs, Dockerfile referenceInstruction syntax, continuation lines, the escape directive, exec and shell form
  • Docker Docs, Building best practicesPinning base images, apt-get cleanup in the same RUN, COPY over ADD, unprivileged USER

Última verificação: 16 de outubro de 2026.

Taxas e regras mudam; confira a fonte antes de confiar em um valor.

Ainda com dúvidas? Pergunte sobre Linter de Dockerfile e qualquer pessoa que saiba pode responder. Não é preciso ter conta.

Ferramentas relacionadas

Todas as ferramentas para desenvolvedores
Testador de expressões regularesTeste expressões regulares de JavaScript com destaque ao vivo e uma explicação em linguagem simplesComparador de textosCompare dois textos lado a lado e veja cada linha adicionada e removidaComparar JSONCompare dois documentos JSON e veja cada valor adicionado, removido e alteradoPrévia de Open GraphCole uma página e veja o card de compartilhamento no Facebook, LinkedIn, X, WhatsApp e SlackDensidade de palavras-chave e legibilidadeContagem de palavras e frases, densidades, tempo de leitura e pontuação de legibilidade FleschCódigos de status HTTPTodos os códigos de status HTTP, o que significam, quando enviar e a RFC de onde vêmAnalisador de user agentLeia uma string de user-agent: navegador, motor, sistema, tipo de dispositivo e se é um botTestador de JSONPathExecute consultas JSONPath RFC 9535 em JSON colado e veja cada correspondência destacada
Esta ferramenta foi útil?
Omnikit

Pequenas tarefas, feitas no seu navegador. Grátis, rápido e privado. Os arquivos nunca são enviados.

Arquivos

  • Compress Image
  • Image to PDF
  • Merge PDF
  • Compress PDF
  • PDF to Word
  • Word to PDF

Desenvolvimento

  • JSON Formatter & Validator
  • Base64 Encode & Decode
  • JWT Decoder, Verifier & Encoder
  • Password Generator
  • UUID Generator
  • Unix Timestamp Converter

Finanças

  • SIP Calculator
  • EMI Calculator
  • GST Calculator
  • FD Calculator
  • PPF Calculator
  • Lumpsum Calculator
EnglishالعربيةবাংলাDeutschEspañolFrançaisPolskiPortuguêsРусский
GuiasPerguntasSobreComo verificamosBiblioteca de leis (beta)PrivacidadeTermosDivulgaçãoContatoMore: Exam practice (UGC NET Paper 1)Funciona no seu navegador. Nada é enviado. © 2026 Omnikit (theomnikit.com)