Skip to content

Challenge complet de debugging Docker Compose : 5 exercices progressifs (Débutant→Expert) avec 62 bugs corrigés, 378+ tests automatisés, et documentation exhaustive. WordPress, Nextcloud, Mattermost, ELK Stack, Kong API Gateway + Microservices.

Notifications You must be signed in to change notification settings

FCHEHIDI/DevOps-Docker-Debugger

Repository files navigation

🐳 DevOps Docker Debugger

Solutions complètes aux challenges de debugging Docker Compose - Du niveau débutant à expert.

Docker Docker Compose Status

🎯 Objectif

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 ⭐⭐⭐⭐⭐

📋 Exercices

✅ Exercice 1 : WordPress + MySQL (Débutant ⭐)

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

✅ Exercice 2 : Nextcloud + PostgreSQL + Redis (Intermédiaire ⭐⭐)

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

✅ Exercice 3 : Mattermost + PostgreSQL (Intermédiaire+ ⭐⭐⭐)

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

✅ Exercice 4 : Stack ELK (Avancé ⭐⭐⭐⭐)

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

✅ Exercice 5 : Kong Gateway + Microservices (Expert ⭐⭐⭐⭐⭐)

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

📁 Structure du Repository

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

🚀 Quick Start

Prérequis

  • Docker >= 20.10
  • Docker Compose >= 2.0
  • 8GB RAM minimum (16GB recommandé pour l'exercice 4)

Utilisation

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

🎓 Compétences Développées

Niveau Débutant → Intermédiaire

  • ✅ 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

📚 Bonnes Pratiques Appliquées

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-stopped pour la résilience, on-failure pour migrations
  • 📦 Volumes : Persistance des données avec volumes nommés, configs en :ro (read-only)
  • 🎯 Depends On : condition: service_healthy et service_completed_successfully pour 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)

📊 Statistiques du Challenge

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

🏆 Progression de Complexité

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)

📚 Bonnes Pratiques Appliquées

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-stopped pour la résilience
  • 📦 Volumes : Persistance des données avec volumes nommés
  • 🎯 Depends On : condition: service_healthy pour garantir l'ordre
  • 📝 Documentation : README détaillé pour chaque exercice

🛠️ Commandes Utiles

# 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

🐛 Méthodologie de Debugging

  1. Analyser les logs : docker-compose logs service-name
  2. Vérifier la documentation : Docker Hub, doc officielle
  3. Tester les connexions : docker-compose exec service sh
  4. Valider étape par étape : Corriger un problème à la fois
  5. Vérifier le fonctionnement : Tests end-to-end

👤 Auteur

Fares Chehidi

📄 Licence

MIT License - Libre d'utilisation pour l'apprentissage et la formation.

🤝 Contribution

Les contributions sont les bienvenues ! N'hésitez pas à :

  • Signaler des bugs
  • Proposer des améliorations
  • Ajouter de nouveaux exercices

⭐ Support

Si ce repository vous a été utile, n'hésitez pas à lui donner une étoile ⭐

About

Challenge complet de debugging Docker Compose : 5 exercices progressifs (Débutant→Expert) avec 62 bugs corrigés, 378+ tests automatisés, et documentation exhaustive. WordPress, Nextcloud, Mattermost, ELK Stack, Kong API Gateway + Microservices.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages