Notícias
Novos modelos de linguagem da API Serverspace GPT
Serverspace Black Friday
DF
abril 29, 2025
Atualizado abril 29, 2025

O que é Multi-stage build

Ao desenvolver aplicações modernas, especialmente aquelas que serão distribuídas em ambientes baseados em contêineres, como o Docker, é fundamental garantir que a imagem gerada seja leve, segura, eficiente e fácil de manter. Imagens grandes e cheias de dependências desnecessárias não apenas consomem mais espaço e largura de banda, mas também aumentam o tempo de build, dificultam o deploy e podem expor vulnerabilidades. Para lidar com esse desafio, uma técnica poderosa e elegante é o Multi-stage build — um recurso nativo do Docker que permite organizar o processo de construção da imagem em várias etapas, isolando fases como compilação, testes e empacotamento. Neste artigo, vamos entender em detalhes o que é o Multi-stage build, por que ele é tão útil, e como utilizá-lo de forma eficaz no seu fluxo de desenvolvimento.

Por que usar Multi-stage build?

Durante o processo de criação de uma imagem Docker, é comum precisar instalar várias dependências, ferramentas de compilação e bibliotecas. No entanto, essas ferramentas não são necessárias na imagem final, e sua presença pode:

  • Aumentar o tamanho da imagem,
  • Introduzir vulnerabilidades de segurança,
  • Complicar a manutenção do ambiente.

Com o Multi-stage build, é possível dividir o processo de construção da aplicação em várias etapas, mantendo na imagem final apenas o que é essencial para execução.

Como funciona?

Um Dockerfile com Multi-stage build utiliza múltiplas instruções FROM, cada uma iniciando um novo estágio de construção. É possível copiar arquivos entre os estágios — por exemplo, copiar um binário compilado da primeira etapa para a última.

Exemplo prático

Vamos ver um exemplo com uma aplicação em Go:

# Etapa 1: build da aplicação
FROM golang:1.21 as builder

WORKDIR /app
COPY . .
RUN go build -o myapp

# Etapa 2: imagem final
FROM debian:bullseye-slim

WORKDIR /app
COPY --from=builder /app/myapp .

CMD ["./myapp"]

Neste exemplo:

  • A primeira etapa utiliza uma imagem com o compilador Go para gerar o binário.
  • A segunda etapa usa uma imagem mínima (debian:slim) e inclui apenas o binário final.

Vantagens:

  • Imagem menor — sem compilador ou código-fonte.
  • Mais segura — menos componentes, menor superfície de ataque.
  • Mais rápida para transferir e executar.

Recursos avançados

  • É possível criar várias etapas intermediárias (por exemplo, para testes ou documentação).
  • Cada etapa pode ter um nome (as builder) para facilitar a referência.
  • Com o comando --target, é possível construir apenas até uma etapa específica — útil para depuração.

Conclusão

O Multi-stage build é uma técnica essencial para qualquer desenvolvedor ou DevOps que utiliza Docker. Ele permite criar imagens mais limpas, leves e seguras. Se você ainda não adotou essa abordagem nos seus projetos, vale muito a pena começar agora.

Avaliação:
5 fora de 5
Аverage rating : 5
Avaliado por: 1
CEP 01311-930 São Paulo Avenida Paulista, nº 1765, 7º andar, Cj. 72, CV 10172, Bela Vista
+ 55 11 5118-1047
ITGLOBAL.COM BR LTDA

Você também pode gostar...

Usamos cookies para melhorar sua experiência no Serverspace. Ao continuar a navegar em nosso site, você concorda com o Uso de Cookies e com a Política de Privacidade.