1、在安装SonarQube 之前需要先了解一下它是做什么的
SonarQube助力于让所有开发人员编写更干净、更安全的代码
SonarQube是一个用于管理代码质量的开放平台,可以快速的定位代码中潜在的或者明显的错误。目前支持Java,C#,C/C++,Python,PL/SQL,Cobol,JavaScrip,Groovy等二十几种编程语言的代码质量管理与检测。
https://www.shcsinfo.com/sonarqube/
Docker镜像库:https://hub.docker.com/_/sonarqube/
2、最新版本的一些注意点
1、新版的SonarQube(7.9+)只支持以下数据库:
Microsoft SQL Server、Oracle、PostgreSQL、H2 (默认的嵌入式数据库)
注意不再支持MySQL,使用MySQL数据源启动会报错:
Exception in thread "main" org.sonar.process.MessageException: Unsupported JDBC driver provider: mysql
2、新版SonarQube没有/opt/sonarqube/conf
目录了,不需要再做数据卷映射,否则启动报错。
3、SonarQube内置了ElasticSearch,需要调整默认的vm.max_map_count信息,不然启动会报错:
ERROR: [1] bootstrap checks failed [1]: max virtual memory areas vm.max_map_count
在宿主机中执行以下命令: 摘自 https://hub.docker.com/_/sonarqube/
sysctl -w vm.max_map_count=262144 sysctl -w fs.file-max=65536 ulimit -n 65536 ulimit -u 4096
以上是临时修改如果想永久修改则
vim /etc/sysctl.conf #(需要是root账户) #文件最后添加一行: vm.max_map_count=262144 fs.file-max=65536 #sysctl -p 重启生效 sysctl -p
3、安装 PostgreSQL
1、下面以数据库PostgreSQL 作为数据库,先安装PostgreSQL , 这里我使用的是 本地安装数据库 参照 https://www.cnblogs.com/ningy1009/p/14467751.html 进行安装
2、也可以使用docker 安装 postgresql
(1)拉取pg的docker镜像
docker pull postgres:latest
(2)创建一个PostgreSQL Docker容器
docker run --name sonar-postgres -e POSTGRES_USER=sonar -e POSTGRES_PASSWORD=sonar -d -p 5432:5432 postgres
4、使用Docker安装SonarQube
(1)、拉取Sonar Qube 镜像
docker pull sonarqube:latest
(2)创建一个Sonar Qube Docker容器(注意修改替换自己部署的数据库连接) 注:9000是容器内项目端口,9001是映射物理机改项目端口,可以根据自己的情况调整
docker run --name sonarqube -d -p 9001:9000 -e SONARQUBE_JDBC_USERNAME=sonar -e SONARQUBE_JDBC_PASSWORD=sonar -e SONARQUBE_JDBC_URL=jdbc:postgresql://ip:5432/sonar sonarqube
(3)、防火墙添加9000 9001 端口
firewall-cmd --permanent --add-port=9000/tcp firewall-cmd --permanent --add-port=9001/tcp
firewall-cmd --reload
iptables -nL
访问:http://ip:9001 发现访问失败
这里必须先创建sonar 用户和数据库才可访问成功
[root@kycxtest121 data]# su - postgres 上一次登录:二 3月 2 14:24:42 CST 2021pts/0 上 -bash-4.2$ psql -U postgres psql (13.2) 输入 "help" 来获取帮助信息. postgres=# CREATE USER sonar WITH PASSWORD 'sonar'; #创建用户 CREATE ROLE create database sonar;创建sonar数据库 postgres=# alter role sonar createdb; #给sonar授权 ALTER ROLE postgres=# alter role sonar superuser;#给sonar授权
ALTER ROLE
postgres=# alter role sonar createrole; #给sonar 授权
ALTER ROLE
postgres=# alter database sonar owner to sonar; #更改sonar 数据库拥有者(否则sonarqube链连接失败)
添加完数据库后重启 容器
5、再次访问发现访问成功,默认用户名和密码 admin/admin
6、安装中文插件重启项目
重启后即可看到中文界面
7、创建项目并检测项目代码问题