Sobes.tech
Senior

Quelles pratiques existent-elles pour réduire la taille de l'image Docker?

sobes.tech IA

Réponse de l'IA

Pour réduire la taille de l'image Docker, plusieurs pratiques sont appliquées :

  • Utilisation d'images de base minimalistes, par exemple, alpine au lieu de ubuntu.
  • Construction multi-étapes (multi-stage builds), où dans les premières étapes, l'application est construite, et dans l'image finale, seul le runtime minimal avec le binaire compilé reste.
  • Nettoyage des caches et fichiers temporaires après l'installation des dépendances dans le Dockerfile.
  • Fusion des commandes RUN pour réduire le nombre de couches.
  • Utilisation de .dockerignore pour exclure les fichiers inutiles du contexte de build.

Exemple de Dockerfile multi-étapes pour Go :

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

# Étape 2 : Runtime minimal
FROM alpine:latest
WORKDIR /app
COPY --from=builder /app/myapp .
CMD ["./myapp"]

Cette approche permet d'obtenir une image compacte avec un ensemble minimal de fichiers.