Utiliser des constructions Docker à plusieurs étapes pour expédier moins_
Les constructions à plusieurs étapes réduisent la taille de l'image et la surface d'attaque, mais le véritable objectif n'est pas Alpine en lui-même. L'objectif est d'expédier uniquement ce dont la production a besoin.
Cela vous donne une séparation claire entre "ce qui est nécessaire à la construction" et "ce qui est nécessaire à l'exécution."
Le Dilemme Alpine
Alpine peut être une bonne image de runtime. Ce n'est pas automatiquement la bonne image.
Vous devez toujours réfléchir à :
des dépendances natives
la compatibilité de libc
les besoins en débogage
la provenance de l'image
Parfois, une image mince basée sur Debian est un meilleur compromis opérationnel. Le principe est d'expédier moins, pas de cultiver un modèle d'image de base spécifique.
Ce que cela vous apporte
Bien fait, les constructions à plusieurs étapes améliorent :
la taille de l'image
le temps de démarrage à froid et de téléchargement
la surface d'attaque
la clarté autour des dépendances du runtime
C'est pourquoi il vaut la peine de le faire même lorsque la différence de taille d'image est modeste.