Docker utilise un système de cache qui peut parfois ne pas détecter les changements de code source. Ce guide documente la solution mise en place pour garantir que tous les changements de code sont TOUJOURS pris en compte.
# Windows
.\up.ps1
# Linux/Mac
chmod +x up.sh
./up.shOptions disponibles :
.\up.ps1 # Démarre en mode détaché (-d automatique)
.\up.ps1 --build # Force le rebuild puis démarre
.\up.ps1 -d --build # Rebuild + mode détaché# Windows
.\down.ps1
# Linux/Mac
./down.sh# Windows
.\reset.ps1
# Linux/Mac
./reset.sh# Windows
.\build.ps1
# Linux/Mac
./build.sh# Windows
.\build.ps1 worker
# Linux/Mac
./build.sh workerLes Dockerfiles utilisent un argument CACHE_BUST qui change à chaque build :
ARG CACHE_BUST=1
RUN echo "Cache bust: $CACHE_BUST"Cet argument est placé juste avant la copie du code source (COPY src ./src), ce qui force Docker à reconstruire toutes les étapes suivantes quand CACHE_BUST change.
Les scripts build.sh et build.ps1 :
- Génèrent automatiquement un timestamp unique
- Le passent à Docker via
--build-arg CACHE_BUST=<timestamp> - Garantissent que chaque build inclut les derniers changements
api:
build:
context: .
dockerfile: Dockerfile
target: api
args:
CACHE_BUST: ${CACHE_BUST:-1}❌ docker-compose up
❌ docker-compose build
❌ docker-compose build --no-cache # Trop lent✅ ./up.ps1 # Démarre avec cache busting automatique
✅ ./down.ps1 # Arrête les services
✅ ./reset.ps1 # Reset complet- ✅ Toujours à jour : Les changements de code sont TOUJOURS détectés
- ⚡ Rapide : Le cache Docker est utilisé pour les dépendances (npm install)
- 🎯 Précis : Seul le code source invalide le cache, pas les dépendances
- 🔄 Reproductible : Même comportement sur tous les environnements
🔨 Building Docker images with CACHE_BUST=1731000000
📦 This ensures all code changes are included
...
Step 19/25 : ARG CACHE_BUST=1
Step 20/25 : RUN echo "Cache bust: $CACHE_BUST"
---> Running in abc123...
Cache bust: 1731000000
...
✅ Build complete! All code changes have been included.
💡 To start services: docker-compose up -d
- Vérifier que vous utilisez bien le script
build.ps1oubuild.sh - Supprimer complètement les images et rebuilder :
docker-compose down --rmi all ./build.ps1 # ou ./build.sh docker-compose up -d
Les dépendances npm sont toujours en cache, seul le code source est recompilé. C'est normal et optimal.
- 3.0.0-deeplink : Système de deeplink WhatsApp
- 3.1.0-deeplink-test : Test automatique du deeplink + système de cache busting