services: sonarqube: image: sonarqube:community hostname: sonarqube container_name: sonarqube read_only: true depends_on: db: condition: service_healthy environment: SONAR_JDBC_URL: jdbc:postgresql://db:5432/sonar SONAR_JDBC_USERNAME: sonar SONAR_JDBC_PASSWORD: sonar volumes: - ./data/sonarqube/data:/opt/sonarqube/data - ./data/sonarqube/extensions:/opt/sonarqube/extensions - ./data/sonarqube/logs:/opt/sonarqube/logs - ./data/sonarqube/temp:/opt/sonarqube/temp ports: - "9010:9000" db: image: postgres:17 healthcheck: test: [ "CMD-SHELL", "pg_isready -d $${POSTGRES_DB} -U $${POSTGRES_USER}" ] interval: 10s timeout: 5s retries: 5 hostname: postgresql container_name: postgresql environment: POSTGRES_USER: sonar POSTGRES_PASSWORD: sonar POSTGRES_DB: sonar volumes: - ./data/postgresql:/var/lib/postgresql - ./data/postgresql_data:/var/lib/postgresql/data