docker compose build

O comando docker compose build é utilizado para construir as imagens Docker dos serviços definidos no arquivo docker-compose.yml. Ele processa as instruções do Dockerfile associado a cada serviço e cria as imagens necessárias para a execução dos containers.

Estrutura do Comando

docker compose build [opções] [SERVIÇOS...]
  • SERVIÇOS: Especifica quais serviços devem ter suas imagens construídas. Se nenhum serviço for especificado, o Compose construirá as imagens para todos os serviços definidos no arquivo docker-compose.yml.

Principais Opções

  • --no-cache: Ignora o cache durante o processo de build, garantindo que todas as etapas sejam executadas novamente, o que é útil se você deseja garantir que a imagem seja construída do zero.

  • --pull: Sempre tenta baixar a versão mais recente das imagens base (definidas no Dockerfile), garantindo que as construções sejam baseadas nas últimas versões disponíveis.

  • --force-rm: Remove as camadas intermediárias criadas durante o processo de build após a construção da imagem, economizando espaço em disco.

  • --progress [auto|plain|tty]: Controla o formato da saída de progresso durante o build. As opções são:

    • auto: Detecta automaticamente o ambiente e escolhe o formato apropriado.

    • plain: Exibe logs de forma simples, útil para registros.

    • tty: Formato amigável para terminais interativos.

  • --build-arg <chave=valor>: Passa variáveis de ambiente para o processo de build, que podem ser usadas dentro do Dockerfile.

Comportamento Padrão

  • Construção de Imagens: O docker compose build segue as instruções do Dockerfile para cada serviço, construindo uma imagem Docker que será usada para criar os containers.

  • Cache: Por padrão, o Docker Compose utiliza o cache existente para acelerar o processo de build. O cache é baseado nas camadas de imagem que já foram construídas anteriormente.

  • Pull de Imagens Base: Se uma imagem base definida no Dockerfile já estiver disponível localmente, o Docker não a atualizará, a menos que seja especificada a opção --pull.

Exemplos

  1. Construindo as imagens para todos os serviços:

  2. Construindo a imagem para um serviço específico:

  3. Ignorando o cache ao construir as imagens:

  4. Forçando o download das últimas imagens base antes de construir:

  5. Passando argumentos de build para o Dockerfile:

Diferenças com Outros Comandos

  • docker build: O comando docker build é usado para construir imagens de um Dockerfile específico de forma independente. O docker compose build faz a mesma coisa, mas no contexto do Docker Compose, o que permite a construção de várias imagens definidas em um único arquivo docker-compose.yml.

  • docker compose up --build: Combina o processo de construção com a execução dos containers. Isso é útil quando você deseja garantir que as imagens estejam atualizadas e os containers sejam iniciados imediatamente.

Quando Utilizar

Use docker compose build quando você tiver modificado o Dockerfile ou os arquivos no contexto de build (como código-fonte, dependências, etc.) e precisar garantir que as imagens estejam atualizadas antes de executar os containers. Também é útil para preparar imagens em ambientes de CI/CD antes de implantá-las.

Considerações Finais

O comando docker compose build é uma ferramenta essencial para o fluxo de trabalho de desenvolvimento e implantação, garantindo que as imagens Docker estejam corretas e atualizadas antes de serem usadas. Ele oferece flexibilidade com opções como ignorar o cache, forçar o download de imagens base e passar variáveis de build, o que é útil para garantir builds consistentes e personalizados.

Last updated