runbook: dockerfile layer cache ordre (git hermes-nabil)
This commit is contained in:
@@ -0,0 +1,30 @@
|
|||||||
|
# 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.
|
||||||
Reference in New Issue
Block a user