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
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
Construindo as imagens para todos os serviços:
Construindo a imagem para um serviço específico:
Ignorando o cache ao construir as imagens:
Forçando o download das últimas imagens base antes de construir:
Passando argumentos de build para o Dockerfile:
Diferenças com Outros Comandos
docker build
: O comandodocker build
é usado para construir imagens de um Dockerfile específico de forma independente. Odocker 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 arquivodocker-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