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-clidocker di local laptopBuat file
sonar-project.propertiesisi dengan
# must be unique in a given SonarQube Server instance
sonar.projectKey=nama_repo-Key-dari-sonar-qube
sonar.scm.disabled=true
- Gunakan
docker rununtuk 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=262144Tidak 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"
