Skip to main content

Multi Stage | Docker

  • Multi Stage | Docker

Multi-stage no Docker é uma técnica usada no Dockerfile para criar imagens menores e mais seguras, dividindo o processo em múltiplas etapas (stages). Cada etapa pode usar uma imagem diferente, e só o que for necessário é copiado para a etapa final.


Resumo rápido:

  • Usa múltiplas imagens base em um único Dockerfile.
  • Ideal para compilar em uma etapa (com ferramentas pesadas) e copiar só os binários para a etapa final.
  • Reduz o tamanho da imagem final.
  • Melhora a segurança (menos dependências no contêiner final).

🛠️ Exemplo: Aplicação Go

# Etapa 1: Build
FROM golang:1.20 AS builder
WORKDIR /app
COPY . .
RUN go build -o meuapp

# Etapa 2: Imagem final
FROM debian:bullseye-slim
COPY --from=builder /app/meuapp /usr/local/bin/meuapp
ENTRYPOINT ["meuapp"]

🔍 Benefícios:

  • A primeira etapa tem o Go + dependências de build.
  • A segunda etapa (imagem final) tem apenas o binário, sem o Go instalado.
  • Resultado: imagem pequena, leve e rápida.