Sobes.tech
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"]