Aller au contenu

Docker Compose

Structure des services

services:
  perfshop-frontend     # React/Nginx — port 8090
  perfshop-app          # Spring Boot — port 8080
  perfshop-db           # PostgreSQL — port 5432 (interne)
  perfshop-monitoring   # Node.js — port 3001
  prometheus            # Prometheus — port 9091
  grafana               # Grafana — port 3002
  perfshop-chaos-admin  # Panneau de contrôle chaos
  docs                  # MkDocs Material — port 8085

Réseau

Tous les services partagent le réseau bridge perfshop-network. Aucun service n'est exposé directement sur Internet — un reverse proxy Nginx gère les sous-domaines *.tests-performance.fr.

Volumes persistants

Volume Service Contenu
mysql-data perfshop-db Données PostgreSQL
prometheus-data prometheus Métriques (rétention 15j)
grafana-data grafana Dashboards, datasources

Ajouter un service

Pour ajouter un nouveau service au projet :

mon-service:
  image: mon-image:tag
  container_name: mon-service
  ports:
    - "PORT_HOTE:PORT_CONTENEUR"
  mem_limit: 256m          # Toujours définir une limite mémoire
  mem_reservation: 64m
  networks:
    - perfshop-network
  restart: unless-stopped

Limite mémoire obligatoire

Toujours définir mem_limit pour éviter qu'un service ne consomme toute la RAM disponible. Particulièrement important lors des tests de chaos mémoire.