1、Docker安装Sonarqube
docker-compose.yml
- version: "3"
-
- services:
- sonarqube:
- image: sonarqube:8.9.7-community
- depends_on:
- - db
- environment:
- SONAR_JDBC_URL: jdbc:postgresql://db:5432/sonar
- SONAR_JDBC_USERNAME: sonar
- SONAR_JDBC_PASSWORD: sonar
- volumes:
- - sonarqube_data:/opt/sonarqube/data
- - sonarqube_extensions:/opt/sonarqube/extensions
- - sonarqube_logs:/opt/sonarqube/logs
- ports:
- - "9000:9000"
- db:
- image: postgres:12
- environment:
- POSTGRES_USER: sonar
- POSTGRES_PASSWORD: sonar
- volumes:
- - postgresql:/var/lib/postgresql
- - postgresql_data:/var/lib/postgresql/data
-
- volumes:
- sonarqube_data:
- sonarqube_extensions:
- sonarqube_logs:
- postgresql:
- postgresql_data:
-
2、 调整linux系统配置
/etc/sysctl.conf
- fs.file-max = 6553560
-
- kernel.sem =5010 641280 5010 128
- net.core.somaxconn=65535
- vm.dirty_background_ratio = 5
- vm.dirty_ratio = 10
- vm.overcommit_memory=1
- vm.max_map_count=262144
配置生效:sysctl -p
3、访问http://x.x.x.x:9000/
默认登录:admin/admin
4、获取Gitlab Personal Access Token(Edit profile)

5、Sonarqube administration 创建Gitlab集成配置(第4步中创建的Access Token)

6、Sonarqube导入Gitlab项目
7、选择Gitlab中的项目


8、生成Sonarqube Gitlab CI中的环境变量


9、根据第8步中的Sonarqube信息,配置Gitlab项目中的变量。

10、根据Sonarqube信息,配置Gitlab项目.gitlab-ci.yml文件

- sonarqube-check:
- image: gradle:jre11-slim
- variables:
- SONAR_USER_HOME: "${CI_PROJECT_DIR}/.sonar" # Defines the location of the analysis task cache
- GIT_DEPTH: "0" # Tells git to fetch all the branches of the project, required by the analysis task
- cache:
- key: "${CI_JOB_NAME}"
- paths:
- - .sonar/cache
- script: gradle sonarqube
- allow_failure: true
- only:
- - master # or the name of your main branch
11、修改项目build.gradle,增加sonarqube插件。
- plugins {
- id "org.sonarqube" version "3.4.0.2513"
- }
-
- sonarqube {
- properties {
- property 'sonar.projectName', "${project.name}"
- property "sonar.sourceEncoding", "UTF-8"
- property "sonar.sources", "src"
- }
- }
12、Git提交修改,合并分支触发CI/CD。