SonarQube是一种自动代码审查工具,用于检测代码中的错误、漏洞和代码异味。 它可以与现有的工作流程集成,以支持跨项目分支和拉取请求的持续代码检查。
本文基于Linux操作系统,在Docker容器中部署SonarQube服务,并进行简单的配置和使用。SonarQube在7.8
版本之后不再支持Mysql数据库,教程选用的是最新版本的Postgresql数据库,SonarQube使用的版本是8.8-community。
1.安装Postgresql
1.1 下载 PostgreSQL镜像
docker pull postgres
1.2 启动容器
docker run -d -p 5432:5432 -v /data/postgres:/var/lib/postgresql/data -e POSTGRES_PASSWORD=123456 -e ALLOW_IP_RANGE=0.0.0.0/0 --name postgres postgres
参数说明:
POSTGRES_PASSWORD 是数据库初始密码
ALLOW_IP_RANGE=0.0.0.0/0 允许任何主机访问
1.3 进入postgres容器
docker exec -it postgres bash
注意:
这里的postgres
是1.2
中--name
的参数
1.4 使用默认用户postgres
创建SonarQube
数据库
# 切换postgres用户
su postgres
# 进入数据库
psql
# 创建sonar数据库
CREATE DATABASE sonar;
# 退出数据库
\q
# 退出postgres用户
exit
# 退出容器
exit
2. 部署SonarQube
2.1 下载SonarQube镜像
docker pull sonarqube:8.8-community
2.2 创建Volume(可忽略此步骤)
docker volume create --name sonarqube_data
docker volume create --name sonarqube_logs
docker volume create --name sonarqube_extensions
docker volume create --name sonarqube_conf
2.3 启动容器
docker run -d --name sonarqube \
-p 9000:9000 \
-e SONAR_JDBC_URL=jdbc:postgresql://192.168.14.5:5432/sonar \
-e SONAR_JDBC_USERNAME=postgres \
-e SONAR_JDBC_PASSWORD=123456 \
-v sonarqube_data:/opt/sonarqube/data \
-v sonarqube_extensions:/opt/sonarqube/extensions \
-v sonarqube_logs:/opt/sonarqube/logs \
-v sonarqube_conf:/opt/sonarqube/conf \
sonarqube:8.8-community
docker logs -f sonarqube
查看日志发现报错
修改配置