文章目录
- 一、docker安装Mysql
- 1. 映射目录
- 2. 赋予权限
- 3. 镜像拉取
- 4. 运行容器
- 5. 查看日志
- 6. 创建数据库
- 二、docker安装sonarqube
- 2.1. 映射目录
- 2.2.赋予权限
- 2.3. 镜像拉取
- 2.4. 运行容器
- 2.5. 查看日志
- 二、中文简体
- 2.1. 版本对照
- 2.2. download
- 2.3. 重启容器
- 三、规则添加
- 3.1. 规则无
- 3.2. 规则下载
- 3.3. 插件放置
- 3.3. 重启容器
- 四、规则添加
- 4.1. 下载
- 4.2. 安装scanner
- 4.3. 更换jdk版本
- 五、maven安装配置
- 5.1. 下载
- 5.2. 解压
- 5.3. 配置环境变量
- 六、 sonar maven组合
- 6.1. 生成token
- 6.2. 项目创建
一、docker安装Mysql
1. 映射目录
mkdir -p /app/mysql/conf
mkdir -p /app/mysql/logs
mkdir -p /app/mysql/data
2. 赋予权限
chmod -R 777 /app/mysql/
3. 镜像拉取
这一步可以跳过,直接执行运行容器即可
docker pull mysql:5.7
4. 运行容器
先通过镜像创建mysql容器
docker run --name mysql5.7 -d \
-p 3306:3306 \
-v /app/mysql/conf:/etc/my.cnf.d \
-v /app/mysql/logs:/logs \
-v /app/mysql/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
--restart always \
--privileged=true \
mysql:5.7
5. 查看日志
docker logs -f mysql5.7
6. 创建数据库
create databases sonar;
二、docker安装sonarqube
2.1. 映射目录
mkdir /app/sonarqube/logs /app/sonarqube/conf /app/sonarqube/data /app/sonarqube/extensions -p
2.2.赋予权限
chmod -R 777 /app/sonarqube/
2.3. 镜像拉取
这一步可以跳过,直接执行运行容器即可
docker pull sonarqube:7.7-community
2.4. 运行容器
docker run \-d \--name sonarqube7.7 \-p 9000:9000 \-p 9092:9092 \-e SONARQUBE_JDBC_USERNAME=root \-e SONARQUBE_JDBC_PASSWORD=123456 \-e SONARQUBE_JDBC_URL="jdbc:mysql://192.168.92.129:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false" \--privileged=true \-v /app/sonarqube/logs:/opt/sonarqube/logs \-v /app/sonarqube/conf:/opt/sonarqube/conf \-v /app/sonarqube/data:/opt/sonarqube/data \-v /app/sonarqube/extensions:/opt/sonarqube/extensions\sonarqube:7.7-community
注意里面的JDBC相关的url uesrname password要改为跟数据库一致的
2.5. 查看日志
docker logs -f sonarqube7.7
http://192.168.92.129:9000/
http://ip:9000/
账户密码都是admin
admin
二、中文简体
2.1. 版本对照
这是SonarQube的汉化包
兼容列表如下:
如果你是8.7的可以直接market搜索下载
2.2. download
Chinese
github汉化插件下载
按照版本对照要求,我的版本是7.7的,需要去github去下载,手动添加
把sonar-l10n-zh-plugin-1.27.jar复制到
cd /app/sonarqube/extensions/plugins
2.3. 重启容器
docker restart sonarqube7.7
三、规则添加
3.1. 规则无
quality profile页面中,缺少quality profile
3.2. 规则下载
规则都有兼容的版本
8.9版本中很多不需要安装了
参照:https://docs.sonarqube.org/latest/instance-administration/plugin-version-matrix/。
凡是提示Bundled的都已经默认集成了:
插件 | 版本 |
---|---|
sonar-java-plugin | <=5.14.0.18788 |
sonar-javascript-plugin | <=5.2.1.7778 |
规则列表:
https://binaries.sonarsource.com/Distribution/
这里一java语言插件为例,进行演示
3.3. 插件放置
把sonar-java-plugin-5.14.0.18788.jar sonar-javascript-plugin-5.2.1.7778.jar
复制到/app/sonarqube/extensions/plugins
目录下面
cd /app/sonarqube/extensions/plugins
3.3. 重启容器
- 重启容器
docker restart sonarqube7.7
四、规则添加
4.1. 下载
https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/
一般是安装最新的我个人。选择了sonar-scanner-cli-4.6.1.2450-linux.zip。
4.2. 安装scanner
cd /app
wgethttps://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-4.6.2.2472-linux.zip
unzip sonar-scanner-cli-4.6.2.2472-linux.zipvim /etc/profile
export SCANNER_HOME=/app/sonar-scanner-4.6.2.2472-linux
export PATH=$PATH:$SCANNER_HOME/binsource /etc/profile
确认版本安装成功生效
[root@localhost sonar-scanner-4.6.2.2472-linux]# sonar-scanner -v
INFO: Scanner configuration file: /app/sonar-scanner-4.6.2.2472-linux/conf/sonar-scanner.properties
INFO: Project root configuration file: NONE
INFO: SonarScanner 4.6.2.2472
INFO: Java 11.0.11 AdoptOpenJDK (64-bit)
INFO: Linux 3.10.0-957.el7.x86_64 amd64
4.3. 更换jdk版本
vim /app/sonar-scanner-4.6.2.2472-linux/bin/sonar-scanner
###修改use_embedded_jre参数
use_embedded_jre=false
[root@localhost bin]# sonar-scanner -v
INFO: Scanner configuration file: /app/sonar-scanner-4.6.2.2472-linux/conf/sonar-scanner.properties
INFO: Project root configuration file: NONE
INFO: SonarScanner 4.6.2.2472
INFO: Java 1.8.0_301 Oracle Corporation (64-bit)
五、maven安装配置
5.1. 下载
wget https://mirrors.bfsu.edu.cn/apache/maven/maven-3/3.8.4/binaries/apache-maven-3.8.4-bin.tar.gz
5.2. 解压
tar -zxvf apache-maven-3.8.4-bin.tar.gz
5.3. 配置环境变量
vi /etc/profile
export M2_HOME=/app/apache-maven-3.8.4
export PATH=$M2_HOME/bin:$PATH
source /etc/profile
验证
mvn -v
六、 sonar maven组合
6.1. 生成token
6.2. 项目创建
如果只是为了验证maven和sonar可以随便上传一个maven项目即可。
我这里演示,随机找了个项目,等会回合jenkins进行集成,创建springboot项目上传gitlab,这里演示采用已经准备好的项目,
mvn sonar:sonar \-Dsonar.projectKey=test \-Dsonar.host.url=http://192.168.92.129:9000 \-Dsonar.login=2023104e205b5aafe608584b0891a95442fe3247