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,
alpineem vez deubuntu. - 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
.dockerignorepara 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.