Skip to content

Instantly share code, notes, and snippets.

@Attumm
Created February 11, 2025 09:03
Show Gist options
  • Save Attumm/8923e90599f1ce4ff6d88ee255609b4d to your computer and use it in GitHub Desktop.
Save Attumm/8923e90599f1ce4ff6d88ee255609b4d to your computer and use it in GitHub Desktop.
Sonar Qube Setup Docker

Local SonarQube Setup

Simple guide to run SonarQube locally and analyze your code.

Step 1: Set up SonarQube

Create a docker-compose.yml:

version: "3.8"

services:
  sonarqube:
    image: sonarqube:lts
    container_name: sonarqube
    depends_on:
      - sonarqube-db
    environment:
      - SONAR_JDBC_URL=jdbc:postgresql://sonarqube-db:5432/sonar
      - SONAR_JDBC_USERNAME=sonar
      - SONAR_JDBC_PASSWORD=sonar
      - SONAR_ES_BOOTSTRAP_CHECKS_DISABLE=true
    volumes:
      - sonarqube_data:/opt/sonarqube/data
      - sonarqube_extensions:/opt/sonarqube/extensions
      - sonarqube_logs:/opt/sonarqube/logs
    ports:
      - "9000:9000"
    networks:
      - sonarnet
    ulimits:
      nofile:
        soft: 65536
        hard: 65536
    restart: unless-stopped

  sonarqube-db:
    image: postgres:13
    container_name: sonarqube-db
    environment:
      - POSTGRES_USER=sonar
      - POSTGRES_PASSWORD=sonar
      - POSTGRES_DB=sonar
    volumes:
      - sonarqube_db:/var/lib/postgresql/data
    networks:
      - sonarnet
    restart: unless-stopped

volumes:
  sonarqube_data:
  sonarqube_extensions:
  sonarqube_logs:
  sonarqube_db:

networks:
  sonarnet:
    driver: bridge

Start SonarQube:

docker-compose up -d

Step 2: Get a Token

  1. Go to http://localhost:9000
  2. Login with admin/admin
  3. Go to My Account > Security
  4. Generate a new token and save it

Step 3: Run Analysis

In your project directory, run:

docker run --rm \
  --network=sonar-qube_sonarnet \
  -v $(pwd):/usr/src \
  sonarsource/sonar-scanner-cli \
  -Dsonar.projectKey=your-project-key \
  -Dsonar.projectName="Your Project Name" \
  -Dsonar.sources=. \
  -Dsonar.host.url=http://sonarqube:9000 \
  -Dsonar.login=YOUR_TOKEN

Replace:

  • your-project-key with your project identifier
  • Your Project Name with your project's display name
  • YOUR_TOKEN with the token from Step 2

View results at http://localhost:9000

Stop SonarQube

When done:

docker-compose down
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment