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。