Linux 安装SonarQube

 
 
 
 
 
 

1、在安装SonarQube 之前需要先了解一下它是做什么的

  SonarQube助力于让所有开发人员编写更干净、更安全的代码

  SonarQube是一个用于管理代码质量的开放平台,可以快速的定位代码中潜在的或者明显的错误。目前支持Java,C#,C/C++,Python,PL/SQL,Cobol,JavaScrip,Groovy等二十几种编程语言的代码质量管理与检测。

  官网:https://www.sonarqube.org/

  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、创建项目并检测项目代码问题

 

原文地址:https://www.cnblogs.com/ningy1009/p/14463539.html