name: local-sonarqube services: host-requirements: image: postgres:17-alpine privileged: true # OrbStack exposes this Elasticsearch requirement only at its Linux VM boundary. command: ['sysctl', '-w', 'vm.max_map_count=524288'] postgres: image: postgres:17-alpine environment: POSTGRES_DB: sonar POSTGRES_USER: sonar POSTGRES_PASSWORD: ${SONAR_DB_PASSWORD:-sonar-local-only} volumes: - postgres_data:/var/lib/postgresql/data healthcheck: test: ['CMD-SHELL', 'pg_isready -U sonar -d sonar'] interval: 10m timeout: 5s retries: 3 start_period: 30s start_interval: 2s sonarqube: image: sonarqube:26.8.0.126808-community depends_on: host-requirements: condition: service_completed_successfully postgres: condition: service_healthy environment: SONAR_JDBC_URL: jdbc:postgresql://postgres:5432/sonar SONAR_JDBC_USERNAME: sonar SONAR_JDBC_PASSWORD: ${SONAR_DB_PASSWORD:-sonar-local-only} ports: - '127.0.0.1:${SONAR_PORT:-9000}:9000' volumes: - sonarqube_data:/opt/sonarqube/data - sonarqube_extensions:/opt/sonarqube/extensions - sonarqube_logs:/opt/sonarqube/logs ulimits: nofile: soft: 131072 hard: 131072 nproc: soft: 8192 hard: 8192 restart: unless-stopped volumes: postgres_data: sonarqube_data: sonarqube_extensions: sonarqube_logs: