使用docker搭建
version: "3.1" services: db: image: postgres container_name: db ports: - 5432:5432 networks: - sonarnet environment: POSTGRES_USER: sonar POSTGRES_PASSWORD: sonar sonarqube: image: sonarqube:8.9.3-community container_name: sonarqube depends_on: - db ports: - "9000:9000" networks: - sonarnet environment: SONAR_JDBC_URL: jdbc:postgresql://db:5432/sonar SONAR_JDBC_USERNAME: sonar SONAR_JDBC_PASSWORD: sonar networks: sonarnet: driver: bridge
直接docker-compose 启动会有报错
需要设置sysctl.conf文件信息
设置vm.max_map_count
并执行命令刷新
重新启动需要一定时间启动,可以可以查看容器日志,看到如下内容代表启动成功
访问Sonar Qube首页
还需要重新设置一次密码
安装成功后需要重启,安装失败重新点击install重装即可。
安装成功后,会查看到重启按钮,点击即可
重启后查看效果
本地需要有maven的环境
在idea中也要配置好
修改Maven的settings.xml文件配置Sonar Qube信息
<profile> <id>sonar</id> <activation> <activeByDefault>true</activeByDefault> </activation> <properties> <sonar.login>admin</sonar.login> <sonar.password>123456789</sonar.password> <sonar.host.url>http://192.168.11.11:9000</sonar.host.url> </properties> </profile>
在当前项目终端(idea)位置执行命令:mvn sonar:sonar
查看Sonar Qube界面检测结果
unzip sonar-scanner-cli-5.0.1.3006-linux.zip
生成令牌
执行命令检测代码
# 在项目所在目录执行以下命令 /usr/local/docker/jenkins_docker/data/sonar-scanner/bin/sonar-scanner -Dsonar.sources=./ -Dsonar.projectname=demo -Dsonar.projectKey=demo -Dsonar.java.binaries=target/ -Dsonar.login=[填在sonar中生成的令牌]
查看SonarQube界面检测结果
Jenkins继承Sonar Qube实现代码扫描需要先下载整合插件
开启Sonar Qube权限验证
获取Sonar Qube的令牌
配置Jenkins的Sonar Qube信息
将Sonar-scaner添加到Jenkins数据卷中并配置全局配置
配置任务的Sonar-scanner
-Dsonar.projectname=${JOB_NAME} -Dsonar.projectKey=${JOB_NAME} -Dsonar.source=./ -Dsonar.java.binaries=target/ -X
记得给工作目录加权 不然会提示Unable to create root temp directory /var/jenkins_home/workspace/mytest/.scannerwork/.sonartmp
Chmod 777 -R /usr/local/docker/jenkins_docker/data/workspace/