sonarqube部署
2022年8月14日大约 2 分钟
sonarqube部署
部署环境
centos 7.5+
sonarqube 8.9.6
postgres 13.0
宿主机虚拟化配置修改
临时修改重启会失效
sysctl -w vm.max_map_count=524288
sysctl -w fs.file-max=131072
ulimit -n 131072
ulimit -u 8192
postgres安装
- postgres数据库持久化目录
mkdir /postgre
- 赋予目录权限
chown -R 777 /postgre
- 执行docker安装命令 密码是:123456,默认端口5432 使用主机网络
sudo docker run --name postgres --restart=always \
-v /postgre/FaceService:/opt/FaceService \
-v /postgre/postgreData:/var/lib/postgresql/data \
-v /etc/localtime:/etc/localtime:ro \
-e POSTGRES_PASSWORD=123456--network=host -d postgres
- 创建sonarqube所需数据库
DROP DATABASE IF EXISTS sonarqube;
CREATE DATABASE sonarqube WITH ENCODING = 'UTF8';
CREATE USER sonarqube WITH PASSWORD 'sonarqube';
GRANT ALL PRIVILEGES ON DATABASE sonarqube TO sonarqube;
GRANT ALL PRIVILEGES ON all tables in schema public TO sonarqube;
sonarqube安装
- sonarqube数据持久化目录
mkdir /sonarqube
- 赋予目录权限
chown -R 777 /sonarqube
- 执行docker安装命令 默认账户密码admin/admin, 注意修改SONAR_JDBC_URL的host为服务器的内网ip
docker run -d --name sonarqube -p 9000:9000 \
-v /sonarqube/data:/opt/sonarqube/data \
-v /sonarqube/extensions:/opt/sonarqube/extensions \
-v /sonarqube/logs:/opt/sonarqube/logs \
-v /sonarqube/temp:/opt/sonarqube/temp \
-e SONAR_JDBC_URL="jdbc:postgresql://172.18.1.53:5432/sonarqube?useUnicode=true&characterEncoding=utf-8" \
-e SONAR_JDBC_USERNAME="sonarqube" \
-e SONAR_JDBC_PASSWORD="sonarqube" \
-e SONAR_ES_BOOTSTRAP_CHECKS_DISABLE=true \
sonarqube:8.9-community
- 汉化
- 使用sonarqube自带应用市场安装(可能会失败)
进入设置→应用市场, 搜索Chinese Pack安装 - 离线安装(推荐)
进入https://github.com/xuhuisheng/sonar-l10n-zh下载jar包
记得对照版本号下载下载完后需要放入 /sonarqube/extensions/downloads目录下, 此时安装流程会继续执行, 切勿放到/sonarqube/extensions/plugins下,该目录为安装后的目录,会导致插件加载失败,无法启动sonarqube
- 安装社区版本分支选择插件
- 插件下载
下载地址https://github.com/mc1arke/sonarqube-community-branch-plugin 下载完后需要放入 /sonarqube/extensions/downloads目录下 - 插件配置 进入容器修改sonarqube配置文件
docker exec -it 容器id /bin/bash
cd config
vim sonar.properties
增加配置(注意与安装插件的版本号对应)
sonar.web.javaAdditionalOpts=-javaagent:./extensions/plugins/sonarqube-community-branch-plugin-1.8.2.jar=web
sonar.ce.javaAdditionalOpts=-javaagent:./extensions/plugins/sonarqube-community-branch-plugin-1.8.2.jar=ce
- 重启容器
docker restart 容器id
maven命令
初始化检查
# 默认扫描主分支更换分支
参数中增加-Dsonar.branch.name={branch.name}, branch.name输入分支名称
mvn sonar:sonar \
-Dsonar.branch.name={branch.name}
-Dsonar.projectKey=tc-saas \
-Dsonar.host.url=http://服务器内网地址:9000 \
-Dsonar.login=生成的token
jmeter集成
- 使用jmeter的SonarQube Scanner插件(服务器jdk版本是11使用这个)
- 每次构建前执行maven命令(服务器jdk版本是1.8使用这个)