Sobes.tech
Intern

O que é a construção multi-estágio no Docker e para que serve?

sobes.tech IA

Resposta da IA

A construção multi-estágio no Docker é um método de criar imagens Docker que utiliza várias fases de construção em um único Dockerfile. Nas primeiras fases, a aplicação é compilada e preparada, e nas últimas, uma imagem final mínima é formada sem ferramentas ou fontes desnecessárias.

Para que serve:

  • Reduzir o tamanho da imagem final, pois na imagem final apenas os arquivos necessários para execução são incluídos.
  • Aumentar a segurança, pois as ferramentas de compilação e o código fonte não são incluídos.
  • Simplificar o processo de construção, pois todas as etapas são descritas em um único Dockerfile.

Exemplo:

FROM golang:1.20 AS builder
WORKDIR /app
COPY . .
RUN go build -o myapp

FROM alpine:latest
COPY --from=builder /app/myapp /usr/local/bin/myapp
CMD ["myapp"]

Aqui, primeiro, a aplicação em Go é compilada, e depois, na imagem final, apenas o binário compilado é copiado.