安装

SonarQube镜像

点我查看

准备动作

永久修改Linux系统级别的参数,否则容器运行报错

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
[root@docker sonarqube]# vi /etc/sysctl.conf
[root@docker sonarqube]# cat /etc/sysctl.conf |grep -v "#"
vm.max_map_count = 262144
fs.file-max = 65536
[root@docker sonarqube]# vi /etc/security/limits.conf
[root@docker sonarqube]# cat /etc/security/limits.conf |grep -v "#"
* soft nofile 65536
* hard nofile 65536
[root@docker sonarqube]#
[root@docker sonarqube]# reboot
......
......
......
[root@docker sonarqube]# sysctl vm.max_map_count
vm.max_map_count = 262144
[root@docker sonarqube]# sysctl fs.file-max
fs.file-max = 65536
[root@docker sonarqube]# ulimit -n
65536
[root@docker sonarqube]# ulimit -u
31155
[root@docker sonarqube]#

拉取Sonar镜像并启动

安装命令补全插件

1
2
yum install -y bash-completion 
source /etc/profile

拉取镜像

1
2
docker pull postgres:10
docker pull sonarqube:7.9.1-community

搭建临时容器挂载对应文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
docker run \
-d \
--name sonarqube-temp \
-p 9000:9000 \
--link postgres10 \
sonarqube:9.9.0-community


# 创建conf和logs文件夹
mkdir -p /docker/volumes/sonarqube/conf
mkdir -p /docker/volumes/sonarqube/extensions
mkdir -p /docker/volumes/sonarqube/logs
mkdir -p /docker/volumes/sonarqube/data
rm -rf /docker/volumes/sonarqube/data/es7/nodes
chmod -R 777 /docker/volumes/sonarqube

# 复制conf和logs文件夹
docker cp sonarqube-temp:/opt/sonarqube/conf /docker/volumes/sonarqube/
docker cp sonarqube-temp:/opt/sonarqube/extensions /docker/volumes/sonarqube/
docker cp sonarqube-temp:/opt/sonarqube/logs /docker/volumes/sonarqube/
docker cp sonarqube-temp:/opt/sonarqube/data /docker/volumes/sonarqube/

运行容器

启动postgres

1
2
3
4
5
6
7
docker run \
-d \
--name postgres10 \
-p 5432:5432 \
-e POSTGRES_USER=sonar \
-e POSTGRES_PASSWORD=123456 \
postgres:10

启动SonarQube

1
2
3
4
5
6
7
8
9
10
11
12
13
docker run \
-d \
--name sonarqube9.9 \
-p 9000:9000 \
--link postgres10 \
-e SONAR_JDBC_URL=jdbc:postgresql://postgres10:5432/sonar \
-e SONAR_JDBC_USERNAME=sonar \
-e SONAR_JDBC_PASSWORD=123456 \
-v /docker/volumes/sonarqube/conf:/opt/sonarqube/conf \
-v /docker/volumes/sonarqube/extensions:/opt/sonarqube/extensions \
-v /docker/volumes/sonarqube/logs:/opt/sonarqube/logs \
-v /docker/volumes/sonarqube/data:/opt/sonarqube/data \
sonarqube:9.9.0-community

查看容器

1
docker ps -a

添加防火墙

1
2
3
firewall-cmd --zone=public --permanent --add-port=9000/tcp
firewall-cmd --zone=public --permanent --add-port=5432/tcp
firewall-cmd --reload

访问

浏览器访问 http://ip地址:9000

初始使用 admin/admin 登录,进去后需要修改密码

查看数据库信息

设置中文界面

中文界面

注:如果 Intall 出错可以直接去官网下载jar包。

上传到到服务器 /挂载目录/extensions/plugins 目录下,并重启sonarqube服务即可。

IDEA中使用插件sonarlint连接到SonarQube对代码质量进行管控

sonarLint插件安装

File–Settings-Plugins 输入 SonarLint 搜索插件

配置插件

插件安装成功以后,打开插件配置界面,路径:File | Settings | Tools | SonarLint

点击 Create token 会自动打开页面进行连接

一直下一步即可。

生成全局分析令牌

在pom文件中添加以下内容:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<plugins>
<plugin>
<groupId>org.sonarsource.scanner.maven</groupId>
<artifactId>sonar-maven-plugin</artifactId>
<version>3.6.0.1398</version>
</plugin>
</plugins>

<profile>
<id>sonar</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<!-- sonarqube地址 -->
<sonar.host.url>http://192.168.56.101:9000</sonar.host.url>
<!-- 全局分析令牌 -->
<sonar.login>sqa_f7d85c57d9d1e1c845c44fd9134bedff7feeb2</sonar.login>
</properties>
</profile>

然后再项目maven中双击 sonar,如下:

分析完成后,登录SonarQube管理后台,即可查看质检效果。