Livrer une application multi-services reproductible sur n'importe quelle machine, testée automatiquement et déployée sans intervention manuelle. Quatre services, quatre niveaux de tests, une chaîne en cinq étapes. Réalisé seul.
- Cadre
- TP noté
- Période
- juin 2026
- Rôle
- Réalisé seul, de bout en bout
- Outils et technologies
- Docker Compose
- MySQL
- FastAPI
- React
- nginx
- Cypress
- GitHub Actions

Le problème : livrer une application multi-services reproductible sur n'importe quelle machine, testée automatiquement et déployée sans intervention manuelle. C'est la pièce DevOps du portfolio.
Quatre services orchestrés par Docker Compose
- MySQL, sur une image construite sur mesure avec ses migrations SQL et son compte administrateur initialisé.
- Une API Python FastAPI.
- Un front React servi par nginx, configuré en reverse proxy pour supprimer les problèmes de CORS.
- Adminer, pour administrer la base.
Fiabiliser l'orchestration
Healthcheck sur la base, démarrage conditionné à son état de santé, volume persistant, variables d'environnement isolées. La stack remonte et fonctionne : un docker compose up suffit, les quatre conteneurs démarrent et la base passe en état sain.
Fonctionnellement : une inscription avec enregistrement en base, une liste publique réduite des inscrits, et un espace administrateur qui donne accès aux informations privées et à la suppression des comptes.

Quatre niveaux de tests
- Tests unitaires et d'intégration sur l'API, avec 99 % de couverture.
- Tests d'infrastructure.
- Tests de bout en bout Cypress sur le parcours utilisateur.
- Analyse statique des Dockerfile.
Une chaîne en cinq étapes
Un pipeline GitHub Actions en cinq jobs enchaînés, des tests au déploiement : tests backend et envoi de la couverture, tests de bout en bout, construction et publication des images, déploiement du backend sur une plateforme serverless, déploiement du front.
En amont de ce TP, un parcours d'apprentissage Docker complet : images, volumes, réseaux, secrets, builds multi-étapes, Compose et publication sur registre.
