Script bash automatisé qui exécute toutes les étapes :
- ✅ Vérification de Docker
- 🧹 Nettoyage des images temporaires
- 🔨 Build de l'application Next.js (
npm run build) - 🐳 Construction de l'image Docker
- 📤 Push vers Docker Hub
- 🏷️ Taggage automatique (latest si nécessaire)
# Tag automatique (date du jour : YYYY-MM-DD)
./build-docker.sh
# Tag personnalisé
./build-docker.sh v1.0.0
# Tag latest
./build-docker.sh latest[INFO] 🚀 Début du processus de build Docker pour Sporty
[INFO] Tag à utiliser: 2026-03-01
[SUCCESS] Docker est prêt
[INFO] Nettoyage des images temporaires...
[INFO] Construction de l'application Next.js...
[SUCCESS] Build Next.js terminé
[INFO] Construction de l'image Docker: rcharlot49/sporty:2026-03-01
[SUCCESS] Image Docker construite: rcharlot49/sporty:2026-03-01
[INFO] Push de l'image vers Docker Hub: rcharlot49/sporty:2026-03-01
[SUCCESS] Image poussée avec succès: rcharlot49/sporty:2026-03-01
[INFO] Taggage de l'image 2026-03-01 comme latest...
[SUCCESS] 🎉 Build et déploiement terminés avec succès !
[INFO] 📦 Image disponible: rcharlot49/sporty:2026-03-01
[INFO] 📦 Image disponible: rcharlot49/sporty:latest
[INFO] 🚀 Prêt pour le déploiement sur Unraid !
Version PowerShell du script bash avec les mêmes fonctionnalités.
# Tag automatique
.\build-docker.ps1
# Tag personnalisé
.\build-docker.ps1 -Tag "v1.0.0"
# Tag latest
.\build-docker.ps1 -Tag "latest"[ERROR] Docker daemon n'est pas accessible. Démarrez Docker Desktop ou le service Docker.
Solution : Démarrer Docker Desktop (Windows/macOS) ou le service Docker (Linux)
[ERROR] Échec du build Next.js
Solution :
- Vérifier que
npm installa été exécuté - Vérifier les erreurs TypeScript :
npm run lint - Vérifier les tests :
npm test
[ERROR] Échec du push Docker
Solution :
- Vérifier les identifiants Docker Hub :
docker login - Vérifier que le repository
rcharlot49/sportyexiste sur Docker Hub
- Par défaut : Date du jour (
YYYY-MM-DD) - Latest : Toujours taggé en plus du tag spécifique
- Personnalisé : Tout tag passé en paramètre
rcharlot49/sporty:latest- Dernière versionrcharlot49/sporty:YYYY-MM-DD- Version datéercharlot49/sporty:v1.0.0- Version personnalisée
Après le build, utiliser l'une des méthodes décrites dans README.md :
- Interface Docker d'Unraid
- Docker Compose
- Commande manuelle
Le Dockerfile utilise un build multi-stage pour optimiser la taille finale :
- Stage builder : Construction avec toutes les dépendances
- Stage runner : Image de production minimale
Configurez le cache de build pour des rebuilds plus rapides :
# Dans next.config.ts
experimental: {
incrementalCacheHandlerPath: require.resolve('./cache-handler.js'),
},Le fichier .dockerignore exclut :
node_modules.next.git- Fichiers temporaires
Cela réduit le contexte de build et améliore les performances.