Sobes.tech
Junior — Middle

Explique o conceito de construção multi-stage no Docker e suas vantagens.

sobes.tech IA

Resposta da IA

A compilação multi-stage no Docker permite usar várias etapas de construção num único Dockerfile. Isto significa que pode primeiro construir a aplicação num contêiner com as ferramentas e dependências necessárias, e depois copiar apenas os artefactos necessários para a imagem final, que será mínima e leve.

Vantagens:

  • Redução do tamanho da imagem final, pois não inclui as ferramentas de construção nem ficheiros temporários.
  • Aumento da segurança, pois a imagem final não contém componentes desnecessários.
  • Facilidade de manutenção e legibilidade do Dockerfile, pois todas as etapas estão num só lugar.

Exemplo para Go:

# Etapa de construção
FROM golang:1.20 AS builder
WORKDIR /app
COPY . .
RUN go build -o myapp

# Imagem final
FROM alpine:latest
WORKDIR /app
COPY --from=builder /app/myapp .
CMD ["./myapp"]