How To
- Buat file
docker-compose.yml
services:
sonarqube:
image: sonarqube:latest
container_name: sonarqube-ctr
depends_on:
- db
environment:
SONAR_JDBC_URL: jdbc:postgresql://db:5432/sonarqube
SONAR_JDBC_USERNAME: sonaran
SONAR_JDBC_PASSWORD: mentarimenyinaro
volumes:
- sonarqube_data:/opt/sonarqube/data
- sonarqube_extensions:/opt/sonarqube/extensions
- sonarqube_logs:/opt/sonarqube/logs
ports:
- "9000:9000"
networks:
- sonarnet
db:
image: postgres:13
container_name: sonarqube-pgsql-ctr
environment:
POSTGRES_USER: sonaran
POSTGRES_PASSWORD: mentarimenyinaro
POSTGRES_DB: sonarqube
volumes:
- postgresql_data:/var/lib/postgresql/data
networks:
- sonarnet
volumes:
sonarqube_data:
sonarqube_extensions:
sonarqube_logs:
postgresql_data:
networks:
sonarnet:
driver: bridge
- Buka localhost:9000, default otentikasinya admin/admin
Integrasi dengan Github
-
Untuk mendapatkan Github App ID & Client, masuk ke Github -> Developer Settings -> Github App , New Github App
-
Untuk Homepage & Callback URL, masukan domain SonarQube
-
Buat Private Keys, ini bakal dipakai nanti untuk setup di SonarQube
-
Untuk permissionnya, bisa di cek di SonarQube Devops Integration Documentations

List SonarQube Permissions from Github
-
Masuk ke SonarQube, pilih “Import from Github”. Masukan semua yang diperlukan sesuai dengan yang tadi sudah di buat
-
Jika sudah, nanti kamu akan masuk ke halaman Github untuk integrasi dengan SonarQube.
-
Pilih project/repo yang ingin diintegrasikan

SonarQube Github Integration Success
Mencoba Analisis di Local
-
Buat test-nya, kita akan coba analisa dengan menggunakan
sonar-scanner-cli
docker di local laptop -
Buat file
sonar-project.properties
isi dengan
# must be unique in a given SonarQube Server instance
sonar.projectKey=nama_repo-Key-dari-sonar-qube
sonar.scm.disabled=true
- Gunakan
docker run
untuk menjalankansonar-scanner-cli
docker run \
--rm \
-e SONAR_HOST_URL="https:// \
-e SONAR_TOKEN="sqp_xxx" \
-v "/home/username/sonar-project.properties:/opt/sonar-scanner/conf/sonar-scanner.properties" \
-v "/home/username/project:/usr/src" \
sonarsource/sonar-scanner-cli

SonarQube Analyze Result
Beberapa Error di Sonarqube
-
bootstrap check failure [1] of [1]: max virtual memory areas vm.max_map_count [65530] is too low
. Solusi,sudo sysctl -w vm.max_map_count=262144
-
Tidak bisa akses web karena “maintenance” (di log ada
Database needs to be migrated. Please refer to https://docs.sonarsource.com/sonarqube-community-build/server-upgrade-and-maintenance/upgrade/upgrade-the-server/roadmap
. Ini bisa disebabkan karena kamu upgrade Sonarqube
#masuk ke sonarqube container
docker exec -it sonarqube-ctr bash
#jalankan migrate
#for username:password use from SONAR_JDBC_USERNAME & SONAR_JDBC_PASSWORD
curl -u admin:admin -X POST "http://localhost:9000/api/system/migrate_db"
#cek status
curl -u admin:admin "http://localhost:9000/api/system/status"