【4.20】服务器安装 Docker中安装与配置 SonarQube 代码质量检测

https://blog.csdn.net/weixin_49002978/article/details/121488379
https://docs.sonarqube.org/latest/requirements/requirements/

docker search sonar


search

docker pull sonarqube


image.png

docker run -d -p 9006:9000 sonarqube
我们打开浏览器输入网址 localhost:9006
默认登录的账号和密码都是admin,到这一步我们的sonar安装运行就完成了。


image.png

持久化sonar

官网上已经声明 sonarQube 7.9 版本以上不再支持 mysql 了,我们为了以后升级新版本不做数据库迁移,尽量使用 postgresql

如果需要持久化我们的sonar扫描数据,可以使用以下命令启动sonar,jdbc信息为mysql的连接、用户名和密码。sonar会将扫描信息持久化到postgres 中。

# 备挂载文件
mkdir -p /home/sonarqube/{extensions,logs,data}
# 修改内核参数
vim /etc/sysctl.conf

# 增加以下配置
vm.max_map_count=262144
fs.file-max=65536

# 使配置生效
sysctl -p


docker run --restart=always -d --name sonarqube -p 9006:9000 \
-v /home/sonarqube/extensions:/opt/sonarqube/extensions \
-v /home/sonarqube/logs:/opt/sonarqube/logs \
-v /home/sonarqube/data:/opt/sonarqube/data \
-e "SONAR_JDBC_USERNAME=sonar" \
-e "SONAR_JDBC_PASSWORD=sonar" \
-e "SONAR_JDBC_URL=jdbc:postgresql://192.168.0.103:5432/sonar"  \
--privileged=true \
sonarqube



Administration->Marketplace->搜索chinese pack,进行相应版本的安装,如下图

使用sonar扫描代码

登录进入sonar页面后,点击创建一个项目

image

点击 manually(手动的),这里也可以选择github,在项目中使用git关联sonar可以更方便的扫描代码分支。

image

然后随便输入一个project名称,这里建议与项目名称相同。

image

随便输入一个什么(建议与项目名称相同),生成一个token。生成后点击continue,继续。

image

根据我们的项目选址maven或者gradle,或者其他。sonar会在下方自动给出扫描代码的命令。然后打开我们的idea,在下方命令行执行。这里有一个坑点,由于sonar会去target目录下扫描我们的class文件,所以要先将项目打包

mvn -package

然后再去扫描,扫描完成之后回到192.168.0103:9006,就可以看到我们代码中的质量问题了。

image.png

出现版本不一致问题


image.png

对照


版本号

默认的 sonar最新版本 支持 java11 需要修改版本

使用 sonarqube 对 java 项目代码进行扫描的时候,java 项目的版本不能低于 sonar 的编译版本。

sonarqube:7.8-community 是 sonar 对 jdk1.8 的最后一个版本,从 7.9 以后 sonar 最低支持版本为 jdk 1.11

sonar 与 Java版本 对照 官网上能看到的

sonarqube java 官网
>7.8 11 详细
7.8 >7.4 8 详细

sonarqube 应当降低版本到7.8

docker pull sonarqube:7.8-community
docker rm -f sonarqube 
rm -Rf /home/sonarqube/{extensions,logs,data}

mkdir -p /home/sonarqube/{extensions,logs,data,conf}

chown -R 999:999 /home/sonarqube/.


docker run  -d --name sonarqube  sonarqube:7.8-community


docker cp sonarqube:/opt/sonarqube/conf /home/sonarqube/
docker cp sonarqube:/opt/sonarqube/extensions /home/sonarqube/
docker rm -f sonarqube 
chown -R 999:999  /home/sonarqube

docker run --restart=always -d --name sonarqube -p 9006:9000 \
-v /home/sonarqube/conf:/opt/sonarqube/conf \
-v /home/sonarqube/extensions:/opt/sonarqube/extensions \
-v /home/sonarqube/logs:/opt/sonarqube/logs \
-v /home/sonarqube/data:/opt/sonarqube/data \
-e sonar.jdbc.username=sonar \
-e sonar.jdbc.password=sonar \
-e sonar.jdbc.url=jdbc:postgresql://192.168.0.103:5432/sonar  \
sonarqube:7.8-community



https://blog.csdn.net/a391000181/article/details/102221188
数据库postgresql 应当设置为 public

mvn sonar:sonar   -Dsonar.projectKey=test   -Dsonar.host.url=http://192.168.0.103:9006   -Dsonar.login=6948ace42076ab5e26e9e7bfdbf237a1df3c14f9  

点波关注 系统搭建(docker)

你可能感兴趣的:(【4.20】服务器安装 Docker中安装与配置 SonarQube 代码质量检测)