1. 拉取SonarQube镜像和PostgreSQL镜像
访问SonarQube,在社区建设找到最新的版本号替换如下命令:
docker pull library/sonarqube:lts-community
docker pull postgres:15
2. 创建docker-compose文件
mkdir -p /usr/local/docker/sanarqube_docker
cd /usr/local/docker/sanarqube_docker
vi docker-compose.yml
1 | |
4. 启动docker-compose
docker-compose up -d
第一次启动会失败,使用docker logs -f sonarqube查看发现报错max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144],在如下文件追加虚拟内存配置:
vi /etc/sysctl.conf
1 | |
sysctl -p
docker-compose up -d
5. SonarQube初始化
- SonarQube启动后,访问
http://10.10.10.12:9000,使用admin/admin登录,按提示修改密码。 - 点击
Administration,点击Marketplace,点击I understand the risk,在下边搜索框搜索chinese,选择Chinese PackLocalization,点击Install。 - 如果安装失败,查看日志有可能是因为服务器时间不对,使用
ntpdate ntp.tencent.com给服务器授时,使用hwclock --systohc将系统时间写入硬件。 - 插件安装成功后按提示重启SonarQube,即可看到中文版页面。
6. Jenkins安装SonarQube Scanner插件
- 在Jenkins点击右上角齿轮,点击
插件管理,在Available plugins搜索SonarQube Scanner安装。 - 在SonarQube点击用户头像,选择
我的账号,输入自定义用户名,选择用户令牌和永不过期,点击生成,记录token。 - 在Jenkins点击右上角齿轮,点击
系统管理,找到SonarQube servers,点击Add SonarQube,Name自定义,Server URL输入http://10.10.10.12:9000,在Server authentication token右边点击添加,选择Secret text,范围选全局,在Server填入token,点击Create,在左边的选择框选中刚创建的令牌,保存页面。 - 访问SonarScanner CLI下载最新的
SonarScanner放到Jenkins数据目录,使用unzip sonar-scanner-cli-8.0.1.6346-linux-x64.zip解压文件,使用mv sonar-scanner-8.0.1.6346-linux-x64/ sonar-scanner重命名文件,使用rm -rf sonar-scanner-cli-8.0.1.6346-linux-x64.zip删除安装包。 - 在在Jenkins点击右上角齿轮,点击
全局工具配置,在SonarQube Scanner 安装下点击新增SonarQube Scanner,自定义Name,在SONAR_RUNNER_HOME填写/var/jenkins_home/sonar-scanner,点击保存。
7. 在Jenkins项目里配置SonarQube检查
在项目的配置点击增加构建步骤,选择Execute SonarQube Scanner ,在Analysis properties下填写:
1 | |
保存后重新构建项目,完成后即可在SonarQube看到代码审查结果。