Sobes.tech
Senior

Que práticas existem para reduzir o tamanho da imagem Docker?

sobes.tech IA

Resposta da IA

Para reduzir o tamanho da imagem Docker, aplicam-se várias práticas:

  • Uso de imagens base minimalistas, por exemplo, alpine em vez de ubuntu.
  • Construção em múltiplas etapas (multi-stage builds), onde nas primeiras etapas a aplicação é construída, e na imagem final fica apenas o runtime mínimo com o binário compilado.
  • Limpeza de caches e arquivos temporários após a instalação de dependências dentro do Dockerfile.
  • Combinação de comandos RUN para reduzir o número de camadas.
  • Uso de .dockerignore para excluir arquivos desnecessários do contexto de build.

Exemplo de Dockerfile de múltiplas etapas para Go:

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

# Etapa 2: Runtime mínimo
FROM alpine:latest
WORKDIR /app
COPY --from=builder /app/myapp .
CMD ["./myapp"]

Este método permite obter uma imagem compacta com o conjunto mínimo de arquivos.