Digite para filtrar os verbetes do Glossário.

    DevOps e infraestrutura · Formação DevOps

    O que é Dockerfile?

    Dockerfile descreve a construção de uma imagem. Entenda instruções, contexto de build, comando inicial, cache e cuidados com arquivos e credenciais.

    Também chamado de: arquivo dockerfile, receita de imagem

    O que é um Dockerfile

    Dockerfile é um arquivo de instruções usado para construir uma imagem de container. Ele descreve como preparar os arquivos e a configuração que servirão de base à execução, incluindo a origem do ambiente e o comando previsto para iniciar a aplicação.

    O arquivo participa do build, mas não representa uma aplicação em execução. Depois de alterá-lo, você precisa gerar outra imagem e criar ou atualizar os containers que usarão esse resultado.

    Instruções de construção e de execução

    A instrução FROM define a base de uma etapa, e COPY copia arquivos para a imagem. RUN executa comandos durante o build, como instalar uma dependência. Já CMD fornece o comando ou os argumentos padrão usados na execução, conforme sua combinação com ENTRYPOINT.

    Essa diferença explica por que uma imagem pode ser construída e falhar apenas ao iniciar. Declarar um comando em CMD não o executa durante o build nem comprova que o arquivo indicado estará disponível no ambiente final. Se houver ENTRYPOINT, confira também quais argumentos ele receberá.

    Quais arquivos entram no contexto de build

    O conjunto de arquivos do build fica disponível ao processo de construção. Na cópia padrão com COPY, os arquivos vêm desse conjunto. Um caminho válido no computador não fica automaticamente disponível se estiver fora dele ou tiver sido excluído.

    A origem muda quando você usa COPY --from: os arquivos podem vir de outra etapa, de uma imagem ou de uma fonte de arquivos nomeada. Essa opção permite copiar o resultado compilado de uma etapa anterior sem incluir todas as ferramentas de compilação na imagem final.

    O arquivo .dockerignore permite deixar conteúdo fora do contexto de build. Confira suas exclusões para evitar enviar arquivos desnecessários e para não remover, por engano, um modelo de email ou outro recurso que a aplicação precisa encontrar depois.

    A ordem influencia o cache

    Uma etapa pode reaproveitar um resultado anterior quando suas entradas continuam compatíveis com o cache. Alterar um arquivo usado cedo na construção pode exigir refazer etapas posteriores, mesmo que apenas uma parte do projeto tenha mudado.

    Separar a preparação de dependências da cópia de arquivos alterados com frequência pode reduzir trabalho repetido. A organização, porém, precisa respeitar os arquivos realmente exigidos por cada etapa, incluindo manifestos e arquivos que fixam versões.

    Algumas instruções registram configuração

    Nem toda instrução adiciona uma camada de arquivos. Algumas definem informações que serão usadas ao criar o container, como diretório de trabalho, variáveis e comando padrão.

    EXPOSE informa uma porta prevista pela imagem, mas não a publica no host. A aplicação precisa escutar no endereço adequado e a execução precisa configurar o acesso pela rede conforme o uso desejado.

    Credenciais não pertencem à construção distribuída

    Um segredo copiado para a imagem pode permanecer recuperável em camadas, mesmo que uma instrução posterior remova o arquivo. Argumentos e variáveis de build também não devem ser usados como promessa de sigilo para credenciais.

    Quando o build precisa acessar um recurso privado, use o mecanismo de segredos oferecido pela ferramenta e confira se os comandos não gravam o valor na saída. Esse acesso temporário não substitui a configuração de credenciais necessárias quando a aplicação estiver em execução.

    Validar a imagem produzida

    Construa a imagem, confira os arquivos esperados e inicie uma instância em teste com as opções necessárias. Leia a mensagem de encerramento e os logs se a aplicação parar, pois o erro pode estar no comando, no conteúdo ou em uma dependência externa.

    O Desenvolvimento Colaborativo da Dev Side Studio pode orientar uma investigação delimitada de Docker ou deploy ao vivo. Leve o Dockerfile e a diferença observada entre a construção e a execução, preservando as credenciais do projeto.

    Dúvidas frequentes

    Perguntas frequentes sobre Dockerfile

    RUN e CMD fazem a mesma coisa?
    Não. RUN executa uma instrução durante a construção. CMD fornece o comando ou os argumentos padrão da execução, conforme sua combinação com ENTRYPOINT. Esses valores podem ser substituídos ao iniciar o container.
    EXPOSE abre a porta no servidor?
    Não. A instrução documenta uma porta prevista pela imagem. A publicação e o acesso dependem da configuração de execução e da rede.
    Toda instrução cria uma camada de arquivos?
    Não. Algumas modificam o sistema de arquivos, enquanto outras registram configurações da imagem. Não é correto interpretar cada linha como uma nova camada de arquivos.
    Alterar o Dockerfile atualiza containers existentes?
    Não. É preciso construir a nova imagem e atualizar a execução para usá-la. O arquivo editado não altera uma instância que já está em funcionamento.

    Para continuar

    Recursos relacionados

    Aplicação na formação

    Formação DevOps

    O Dockerfile descreve instruções utilizadas no build da imagem da aplicação.

    Conhecer a formação
    Capa da Formação DevOps

    Fontes consultadas

    Referências deste verbete

    Este verbete ajudou você?

    Planos Promovaweb

    Tire seus projetos do papel

    O Plano Martech cobre automação e atendimento. O Plano IA Makers acrescenta desenvolvimento com IA, enquanto o Plano Founders trata de gestão de negócios. Todos são anuais.

    Plano Martech

    Para conectar automação, marketing e atendimento com infraestrutura própria.

    R$ 897

    R$ 597/ano

    • Grade de automação, atendimento, marketing e análise de indicadores
    • Instalador Exclusivo Promovaweb
    • n8n, Evolution API, Chatwoot e Mautic
    • Trilha DevOps incluída
    • Encontros ao vivo (terça e quinta)
    • Comunidade e acompanhamento
    Conhecer o plano

    Plano Founders

    Plano anual para fazer um projeto de tecnologia avançar, com 90 dias de mentoria intensiva. R$ 1.997 à vista ou até 10x de R$ 219 no cartão.

    R$ 1.997/ano

    • 12 meses de acesso ao Founders
    • 90 dias de mentoria intensiva, um encontro por dia útil
    • Dia de conteúdo (terça e quinta) e War Room (segunda, quarta e sexta)
    • Encontro semanal em grupo após a fase intensiva
    • Formação Vibe Coding incluída no plano anual
    • Consultoria individual de até duas horas (bônus)
    Conhecer o plano