使用 docker 安装 Sonarqube
Sonarqube7 以后不能支持 jdk1.8以及mysql,需要安装 Sonarqube6.5
安装mysql 5
由于 Sonarqube 只能支持 mysql5版本,这里选择mysql 5.6
安装 mysql5.6
docker pull mysql:5.6
查看镜像
docker images
需要可以看到 mysql5.6 的相关image
在opt下创建文件夹
cd /opt/
mkdir mysql_docker
cd mysql_docker/
启动mysql容器
mysql_docker 目录下执行
docker run --name mysqlserver -v $PWD/conf:/etc/mysql/conf.d -v $PWD/logs:/logs -v $PWD/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d -i -p 3306:3306 mysql:5.6
Mysql 密码为123456
mysql 中的所需配置
需要创建 sonar 数据库,用于存放代码审查结果
create database sonar;
exit;
安装 sonarqube
注意:sonarqube7不再支持mysql 以及jdk1.8 需要安装 sonarqube6
-
创建网络
docker network create sonarqube-tier
-
安装 Sonarqube
docker pull sonarqube:6.5
-
创建工作目录
mkdir -p /data/sonarqube
-
修改系统参数
echo "vm.max_map_count=262144" > /etc/sysctl.conf sysctl -p
-
运行一个test容器
docker run -d --name sonartest sonarqube:6.5
将容器内重要文件复制到宿主机
docker cp sonartest:/opt/sonarqube/conf /data/sonarqube docker cp sonartest:/opt/sonarqube/data /data/sonarqube docker cp sonartest:/opt/sonarqube/logs /data/sonarqube docker cp sonartest:/opt/sonarqube/extensions /data/sonarqube
然后删除此容器
docker rm sonartest
修改文件夹权限
chmod -R 777 /data/sonarqube/
-
修改配置
找到 /data/sonarqube/conf/ 路径下的文件 sonar.properties,修改如下并保存
# 找到如下配置去掉注释。并赋值 username,password sonar.jdbc.username=root sonar.jdbc.password=123456 # 去掉 sonar.jdbc.url 注释,配置url sonar.jdbc.url= mysql相关地址
7 . 使用docker命令创建容器
docker run -d --name sonar -p 9090:9000 \
--net sonarqube-tier \
--privileged=true \
--restart always \
-v /data/sonarqube/logs:/opt/sonarqube/logs \
-v /data/sonarqube/conf:/opt/sonarqube/conf \
-v /data/sonarqube/data:/opt/sonarqube/data \
-v /data/sonarqube/extensions:/opt/sonarqube/extensions\
sonarqube:6.5
SonarQube整合p3c规则
p3c下载
下载完后,将jar包上传到/data/sonarqube/extensions/plugins中(推荐mac上传输文件到服务器的软件FileZilla)
规则配置
登录 SonarQube 打开 质量配置(profiles)页,点击右上方的【create】按钮,创建 p3c/java规则
首次创建会跳转到代码规则配置页面,刚新建的 profile 是没有激活任何规则的,需要手动激活 Active More
我们需要为刚创建的 p3c profile 激活 p3c 规则,点击【激活更多规则】
跳转到激活页面,搜索【p3c】,点击【Bulk change】,激活所有 p3c 规则
返回质量配置页,我们可以设置 p3c profile 为默认。