# Serveur SonarQube (auto-hébergé) pour l'analyse de qualité du code.
#
# Démarrage :   docker compose -f docker-compose.sonar.yml up -d
# Interface :   http://localhost:9000   (identifiants par défaut : admin / admin)
# Arrêt :       docker compose -f docker-compose.sonar.yml down
#
# ⚠️ Prérequis hôte (Elasticsearch embarqué dans SonarQube) :
#    Linux :  sudo sysctl -w vm.max_map_count=262144
#    (à rendre permanent dans /etc/sysctl.conf)
#    Prévoir ~2-3 Go de RAM disponibles pour le conteneur.

services:
  sonarqube:
    image: sonarqube:community
    container_name: sonarqube
    depends_on:
      - sonar-db
    ports:
      - "9000:9000"
    environment:
      SONAR_JDBC_URL: jdbc:postgresql://sonar-db:5432/sonar
      SONAR_JDBC_USERNAME: sonar
      SONAR_JDBC_PASSWORD: sonar
    volumes:
      - sonarqube_data:/opt/sonarqube/data
      - sonarqube_extensions:/opt/sonarqube/extensions
      - sonarqube_logs:/opt/sonarqube/logs

  sonar-db:
    image: postgres:15
    container_name: sonar-db
    environment:
      POSTGRES_USER: sonar
      POSTGRES_PASSWORD: sonar
      POSTGRES_DB: sonar
    volumes:
      - sonar_postgresql:/var/lib/postgresql/data

volumes:
  sonarqube_data:
  sonarqube_extensions:
  sonarqube_logs:
  sonar_postgresql:
