Middle+
O que é build multi-stage no Docker? Para que serve?
sobes.tech IA
Resposta da IA
A construção multi-stage no Docker permite usar várias fases de compilação num único Dockerfile. Isto ajuda a criar imagens compactas e otimizadas, separando as fases de compilação e execução final da aplicação.
Por exemplo, na primeira fase pode-se compilar a aplicação com as ferramentas e dependências necessárias, e na segunda apenas copiar os artefactos compilados para uma imagem mínima sem ficheiros ou ferramentas de compilação desnecessárias.
Vantagens:
- Redução do tamanho da imagem final
- Aumento da segurança (menos componentes no contêiner final)
- Clareza e facilidade de gestão do Dockerfile
Exemplo:
# Fase de compilação
FROM golang:1.20 AS builder
WORKDIR /app
COPY . .
RUN go build -o myapp
# Imagem final
FROM alpine:latest
COPY --from=builder /app/myapp /usr/local/bin/myapp
CMD ["myapp"]