SonarQube安装说明

  • 1. SonarQube安装说明
  • 1.1. SonarQube简介
  • 1.2. 安装SonarQube
  • 1.2.1. 拉取PostgreSQL镜像
  • 1.2.2. 拉取SonarQube镜像
  • 1.2.3. 启动PostgreSQL
  • 1.2.4. 启动SonarQube
  • 1.2.5. 配置SonarQube
  • 1.3. 升级SonarQube
  • 1.3.1. 停止和删除老版本容器,删除老镜像
  • 1.3.2. 拉取新的镜像,基于该镜像启动容器,命令和上文一样
  • 1.4. 卸载SonarQube
  • 1.4.1. 停止和删除容器及删除镜像docker命令
  • 1.4.2. 删除宿主机文件夹(在启动SonarQube容器时挂载的文件夹)
  • 1.4.3. 删除PostgreSQL容器和镜像
  • 1.5. 参考资料


1. SonarQube安装说明

1.1. SonarQube简介

SonarQube是一种自动代码审查工具,用于检测代码中的错误,漏洞和代码异味。
它可以与您现有的工作流程集成,以便在项目分支和拉取请求之间进行连续的代码检查。
Sonar不只是一个质量数据报告工具,更是代码质量管理平台。
支持Java, C#, C/C++, PL/SQL, Python, JavaScrip, Groovy等等二十几种编程语言的代码质量管理与检测。
详情请参考官方文档和资料1

1.2. 安装SonarQube

本文使用Docker安装SonarQube,原因是docker很容易部署和升级SonarQube。

SonarQube需要使用数据库,我们采用官方推荐的PostgreSQL,当然MySQL也是可以的。

1.2.1. 拉取PostgreSQL镜像

docker pull postgres

1.2.2. 拉取SonarQube镜像

docker pull sonarqube

1.2.3. 启动PostgreSQL

启动容器,创建了sonar用户,密码为sonar,更多环境变量配置参考资料2

docker run --name sonar-postgres -e POSTGRES_USER=sonar -e POSTGRES_PASSWORD=sonar -d postgres

1.2.4. 启动SonarQube

因为需要将容器内数据持久化到硬盘,所以在启动容器前要确认挂载的文件夹是否具有权限。
如果担心权限问题,可以使用chmod 777 /home/data/sonar -R命令对/home/data/sonar授权,这样所有用户都具有全部权限

docker run -d --name sonar \
    --link sonar-postgres  \
    -p 9001:9000 \
    -v /home/data/sonar/data:/opt/sonarqube/data \
    -v /home/data/sonar/logs:/opt/sonarqube/logs \
    -v /home/data/sonar/extensions:/opt/sonarqube/extensions \
    -e sonar.jdbc.username=sonar \
    -e sonar.jdbc.password=sonar \
    -e sonar.jdbc.url=jdbc:postgresql://sonar-postgres:5432/sonar \
    sonarqube

docker命令解释,更多环境变量配置请参考资料3

  • --link链接到sonar-postgres容器,这样就不用输入该容器地址了
  • -p将容器9000端口绑定到宿主机的9001端口
  • -v将宿主机的文件夹挂载到容器的特定目录,这样可以将数据持久化到宿主机硬盘中,方便查看
  • -e配置PostgreSQL的用户名密码和jdbc链接

1.2.5. 配置SonarQube

  1. 打开http://localhost:9001,点击login,用户名密码都是admin
  2. 登录成功后在进入setting->market中安装以下插件(安装插件很慢)
  • Chinese Pack:中文包
  • Code Smells: 检测Java代码问题
  • Findbugs:使用Findbugs规则检查Java代码
  • PMD:使用PMD规则检查Java代码
  • SonarJava:检查Java代码
  • SonarPython:检查Python代码
  • YAML Analyzer:分析YAML文件
  1. 安装完成后会提示重启,重启即可。如果没有重启提示也可以手动重启容器

1.3. 升级SonarQube

升级SonarQube只需要拉取最新的镜像,重新运行容器即可

1.3.1. 停止和删除老版本容器,删除老镜像

docker stop sonar
docker rm sonar
docker rmi sonarqube

1.3.2. 拉取新的镜像,基于该镜像启动容器,命令和上文一样

1.4. 卸载SonarQube

卸载SonarQube只需要删除容器、镜像和宿主机上文件夹,同时也要删除PostgreSQL容器和镜像

1.4.1. 停止和删除容器及删除镜像docker命令

docker stop sonar
docker rm sonar
docker rmi sonarqube

1.4.2. 删除宿主机文件夹(在启动SonarQube容器时挂载的文件夹)

rm /home/data/sonar -rf

1.4.3. 删除PostgreSQL容器和镜像

docker stop sonar-postgres
docker rm sonar-postgres
docker rmi postgres

1.5. 参考资料

  1. Docker搭建SonarQube
  2. DockHub上PostgreSQL页面
  3. DockerHub上SonarQube页面