# Dockerfile : ordre des couches pour eviter un rebuild complet ## Probleme Ajouter une dependance (ex: git) a un Dockerfile hermes en la fusionnant dans un bloc apt-get deja construit invalide le cache Docker de cette couche ET de toutes les couches suivantes, meme si leur contenu texte est identique. Sur hermes-nabil (VPS), la couche suivante est 'hermes postinstall' qui retelecharge le toolset navigateur Chromium (~400 Mo). Un simple git manquant aurait coute un rebuild complet. ## Solution Ajouter la nouvelle dependance dans une couche RUN separee, placee APRES les couches lourdes deja cachees (mais avant CMD). Seule cette petite couche est reconstruite ; tout ce qui precede reste servi depuis le cache. ```dockerfile # --- git : necessaire pour cloner/mettre a jour les skills type video-use ---- # Couche separee EXPRES, apres hermes postinstall : la fusionner avec le # apt-get plus haut invaliderait le cache et forcerait un retelechargement # complet du toolset navigateur Chromium (~400 Mo) a chaque petit ajout. RUN apt-get update && apt-get install -y --no-install-recommends git \ && rm -rf /var/lib/apt/lists/* ``` Resultat mesure sur hermes-nabil (21/07/2026) : rebuild en ~1 minute, git 2.47.3 fonctionnel post-recreate, /data (bind mount) intact. ## Regle generale S'applique a tout Dockerfile hermes (3 NAS + VPS) : toute dependance systeme mineure ajoutee apres coup va en couche RUN dediee, en fin de fichier (avant CMD), jamais fusionnee dans le bloc apt-get d'origine.