Solutions complètes aux challenges de debugging Docker Compose - Du niveau débutant à expert.
Ce repository contient 5 exercices progressifs de debugging Docker Compose, simulant des situations réelles de déploiement d'applications en entreprise. Chaque exercice présente des erreurs courantes et leurs solutions documentées.
📊 Challenge Complété à 100% !
- ✅ 62 bugs critiques corrigés
- ✅ 378+ tests automatisés
- ✅ 10.000+ lignes de documentation
- ✅ Score moyen : 9.7/10
- ✅ Niveau atteint : Expert ⭐⭐⭐⭐⭐
Statut : ✅ Complété | Score : 9.5/10
Stack : WordPress, MySQL 8.0, PhpMyAdmin
Bugs corrigés : 10 | Tests : 41
Problèmes clés : Configuration MySQL, variables d'environnement, health checks
Dossier : exercice-1-wordpress/
📊 Documentation : analyse.md (24KB) + comparaison.md + test.sh + SYNTHESE.md
Statut : ✅ Complété | Score : 9.6/10
Stack : Nextcloud, PostgreSQL 13, Redis
Bugs corrigés : 12 | Tests : 52
Problèmes clés : Variables POSTGRES vs NEXTCLOUD, intégration Redis, health checks
Dossier : exercice-2-nextcloud/
📊 Documentation : analyse.md (30KB) + comparaison.md + test.sh + SYNTHESE.md
Statut : ✅ Complété | Score : 9.7/10
Stack : Mattermost, PostgreSQL 13
Bugs corrigés : 10 | Tests : 73
Problèmes clés : Chaîne de connexion DB (sslmode=disable), sécurisation, bootstrap.memory_lock
Dossier : exercice-3-mattermost/
📊 Documentation : analyse.md (18KB) + comparaison.md + test.sh + SYNTHESE.md
Statut : ✅ Complété | Score : 9.8/10
Stack : Elasticsearch 8.11.0, Logstash, Kibana, Filebeat
Bugs corrigés : 14 | Tests : 96
Problèmes clés : ulimits critiques, bootstrap.memory_lock, Filebeat user root, 4 health checks
Dossier : exercice-4-elk/
📊 Documentation : analyse.md (35KB) + comparaison.md + test.sh + SYNTHESE.md
Statut : ✅ Complété | Score : 9.9/10
Stack : Kong 3.4, PostgreSQL 13, 3 microservices Nginx, Redis Alpine
Bugs corrigés : 16 | Tests : 116
Problèmes clés : Architecture API Gateway, service_completed_successfully, Redis --requirepass, 7 services orchestrés
Dossier : exercice-5-kong/
📊 Documentation : analyse.md (35KB) + comparaison.md + test.sh + SYNTHESE.md
DevOps-Docker-Debugger/
├── README.md # Ce fichier
├── docker-compose-debugging-challenge.md # Énoncé complet des exercices
│
├── exercice-1-wordpress/
│ ├── docker-compose-buggy.yml # Version avec bugs
│ ├── docker-compose.yml # Version corrigée
│ ├── .env # Variables d'environnement
│ └── README.md # Documentation des corrections
│
├── exercice-2-nextcloud/
│ ├── docker-compose-buggy.yml
│ ├── docker-compose.yml
│ ├── .env
│ └── README.md
│
├── exercice-3-mattermost/
│ ├── docker-compose-buggy.yml
│ ├── docker-compose.yml
│ ├── .env
│ └── README.md
│
├── exercice-4-elk/
│ ├── docker-compose-buggy.yml
│ ├── docker-compose.yml
│ ├── .env
│ ├── logstash/
│ │ ├── config/logstash.yml
│ │ └── pipeline/logstash.conf
│ ├── filebeat/
│ │ └── filebeat.yml
│ └── README.md
│
└── exercice-5-kong/
├── docker-compose-buggy.yml
├── docker-compose.yml
├── .env
├── kong-setup.sh # Script de configuration Kong
├── services/
│ ├── user-service/nginx.conf
│ ├── product-service/nginx.conf
│ └── order-service/nginx.conf
└── README.md
- Docker >= 20.10
- Docker Compose >= 2.0
- 8GB RAM minimum (16GB recommandé pour l'exercice 4)
Chaque exercice contient deux fichiers :
- docker-compose-buggy.yml : Version avec bugs à débugger
- docker-compose.yml : Solution corrigée avec bonnes pratiques
# Tester la version buggée (pour apprendre)
cd exercice-X-nom/
docker-compose -f docker-compose-buggy.yml up -d
# Analyser les erreurs
docker-compose -f docker-compose-buggy.yml logs
# Utiliser la solution
docker-compose up -d- ✅ Lecture et compréhension de la documentation Docker Hub
- ✅ Analyse et résolution de logs d'erreur
- ✅ Configuration de réseaux Docker isolés
- ✅ Mise en place de health checks (pg_isready, curl, wget)
- ✅ Gestion des dépendances entre services (depends_on)
- ✅ Sécurisation avec variables d'environnement (.env + .gitignore)
- ✅ Debugging d'applications tierces
- ✅ Application des bonnes pratiques DevOps
Dans tous les exercices corrigés :
- 🔒 Sécurité : Variables d'environnement (.env protégé), pas de credentials en dur, Redis --requirepass
- 🌐 Réseaux : Réseaux Docker isolés, pas d'exposition inutile de ports, pattern API Gateway
- 💚 Health Checks : Vérification de l'état des services (pg_isready, kong health, wget, redis-cli)
- 🔄 Restart Policy :
unless-stoppedpour la résilience,on-failurepour migrations - 📦 Volumes : Persistance des données avec volumes nommés, configs en :ro (read-only)
- 🎯 Depends On :
condition: service_healthyetservice_completed_successfullypour orchestration - 🏗️ Architecture : Pas de version:, container_name, ulimits (Elasticsearch), start_period adaptés
- 📝 Documentation : analyse.md + comparaison.md + test.sh + SYNTHESE.md pour chaque exercice
- 🧪 Tests : Scripts Bash automatisés (41 à 116 tests par exercice)
| Exercice | Niveau | Bugs | Tests | Lignes Doc | Score |
|---|---|---|---|---|---|
| 1 - WordPress | ⭐ Débutant | 10 | 41 | ~2.000 | 9.5/10 |
| 2 - Nextcloud | ⭐⭐ Inter. | 12 | 52 | ~2.500 | 9.6/10 |
| 3 - Mattermost | ⭐⭐⭐ Inter.+ | 10 | 73 | ~2.200 | 9.7/10 |
| 4 - ELK Stack | ⭐⭐⭐⭐ Avancé | 14 | 96 | ~3.000 | 9.8/10 |
| 5 - Kong Gateway | ⭐⭐⭐⭐⭐ Expert | 16 | 116 | ~2.900 | 9.9/10 |
| TOTAL | Débutant→Expert | 62 | 378 | ~12.600 | 9.7/10 |
Débutant (2 services) → Intermédiaire (3 services) → Avancé (4 services) → Expert (7 services)
WordPress Nextcloud + Redis ELK Stack Kong + Microservices
- ✅ Documentation technique exhaustive (10.000+ lignes)
Dans tous les exercices corrigés :
- 🔒 Sécurité : Variables d'environnement, pas de credentials en dur
- 🌐 Réseaux : Réseaux Docker isolés, pas d'exposition inutile de ports
- 💚 Health Checks : Vérification de l'état des services
- 🔄 Restart Policy :
unless-stoppedpour la résilience - 📦 Volumes : Persistance des données avec volumes nommés
- 🎯 Depends On :
condition: service_healthypour garantir l'ordre - 📝 Documentation : README détaillé pour chaque exercice
# Démarrer les services
docker-compose up -d
# Voir les logs
docker-compose logs -f
# Vérifier l'état
docker-compose ps
# Arrêter et supprimer
docker-compose down
# Arrêter et supprimer les volumes
docker-compose down -v- Analyser les logs :
docker-compose logs service-name - Vérifier la documentation : Docker Hub, doc officielle
- Tester les connexions :
docker-compose exec service sh - Valider étape par étape : Corriger un problème à la fois
- Vérifier le fonctionnement : Tests end-to-end
Fares Chehidi
- GitHub: @FCHEHIDI
- Repository: DevOps-Docker-Debugger
MIT License - Libre d'utilisation pour l'apprentissage et la formation.
Les contributions sont les bienvenues ! N'hésitez pas à :
- Signaler des bugs
- Proposer des améliorations
- Ajouter de nouveaux exercices
Si ce repository vous a été utile, n'hésitez pas à lui donner une étoile ⭐