SonarQube使用介绍 SonarQube 是一个开源的代码分析平台, 用来持续分析和评测项目源代码的质量。 通过SonarQube我们可以检测出项目中重复代码, 潜在bug, 代码规范,安全性漏洞等问题,
SonarQube使用介绍
SonarQube 是一个开源的代码分析平台, 用来持续分析和评测项目源代码的质量。 通过SonarQube我们可以检测出项目中重复代码, 潜在bug, 代码规范,安全性漏洞等问题, 并通过SonarQube web UI展示出来。
SonarQube由服务器、数据库、扫描仪和插件4部分组成。
部署SonarQube
sysctl设置
echo "vm.max_map_count=262144" >> /etc/sysctl.conf
sysctl -p
创建docker-compose.yml
创建一个sonar的文件夹,在文件夹下面创建docker-compose.yml文件
这里有个版本的坑要注意一下:
sonarqube:7.8-community 是 sonar 对 jdk1.8 的最后一个版本,从 7.9 以后 sonar 最低支持版本为 jdk 1.11
如果你环境是jdk1.8的话 你一定要选这个版本。
version: '3'
services:
postgres:
image: nanlist/postgres12.3:v1
restart: always
container_name: sonarqube_postgres
ports:
- 5432:5432
volumes:
# 设置与宿主机时间同步
- /etc/localtime:/etc/localtime:ro
environment:
TZ: Asia/Shanghai
POSTGRES_USER: sonar
POSTGRES_PASSWORD: sonar
POSTGRES_DB: sonar
networks:
- sonar-network
sonar:
image: nanlist/sonarqube7.8-community:v1
restart: always
container_name: sonarqube
depends_on:
- postgres
volumes:
# 设置与宿主机时间同步
- /etc/localtime:/etc/localtime:ro
ports:
- 9000:9000
environment:
SONARQUBE_JDBC_USERNAME: sonar
SONARQUBE_JDBC_PASSWORD: sonar
SONARQUBE_JDBC_URL: jdbc:postgresql://postgres:5432/sonar
networks:
- sonar-network
networks:
sonar-network:
driver: bridge
启动容器
启动:docker-compose up -d
停止:docker-compose down
启动:docker-compose start
停止:docker-compose stop
访问
页面初始化需要一段时间
浏览器访问:ip+端口,如:10.10.11.79:9000
管理员账号密码都是:admin
安装中文汉化插件
搜索chinese
如果下载失败选择手动下载:
cd /home/sonar 下面
这一步也得找对应的版本(好坑的)
下载jar包:
wget https://github.com/xuhuisheng/sonar-l10n-zh/releases/download/sonar-l10n-zh-plugin-1.28/sonar-l10n-zh-plugin-1.28.jar
通过docker cp 把jar包上传到sonar容器中
docker cp sonar-l10n-zh-plugin-1.28.jar sonarqube:/opt/sonarqube/extensions/plugins/
检查是否拷贝成功
docker exec -it sonarqube bash
ls /opt/sonarqube/extensions/plugins/
docker重启sonarqube
退出容器,重新启动一下:
docker restart sonarqube
SonarQube 需要数据库的支持,用于存储检测项目后的分析数据,同时为了实现可持续监测,还需要持续集成工具(如Jenkins)的支持,在构建版本前,通过Jenkins+Sonar 插件执行项目分析指令,最终的结果会通过SonarQube 服务器的Web 页面展示。