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"]