C.2 · Construire et distribuer des images
Construire des images efficaces : multi-étapes, cache, taille
Lab sur une machine Linux · questionnaire de validation · gratuit, dans le navigateur
Pour compiler une application, il faut un compilateur, des bibliothèques, des outils de test : plusieurs centaines de mégaoctets. Pour la faire tourner, il suffit souvent du binaire. La construction en plusieurs étapes (multi-stage build) sépare les deux dans un seul Dockerfile : une étape lourde qui compile, une image finale minuscule qui ne contient que le résultat. Moins de taille, moins de vulnérabilités, rien d'utile à un attaquant.
Ce que vous saurez à la fin : écrire un Dockerfile multi-étapes, choisir une image finale minimale (distroless, scratch), tirer parti du cache de construction, et vérifier la taille et le contenu d'une image.
Au programme de ce lab
- Votre mission
- Pas à pas
- Le problème
- Deux étapes
- Choisir l'image finale
- Le cache de construction
- Vérifier le résultat
Ce que KubeNow vérifie
- Deux étapes : la première, nommée build, part d'une image golang
- Le binaire est compilé en statique (CGO_ENABLED=0)
- L'image finale part de gcr.io/distroless/static-debian12:nonroot
- L'étape finale ne copie que le binaire, depuis l'étape build
- Utilisateur non root et ENTRYPOINT en forme exec
- .dockerignore exclut .git et .env