实战:SonarQube平台安装配置-2023.6.24(安装成功)(docker方式)
目录
推荐文章
https://www.yuque.com/xyy-onlyone/aevhhf?# 《玩转Typora》
实验环境
sonarqube:9.9.0-community (docker方式部署)
SonarScanner 4.8.0.2856 (部署在宿主机上)
实验软件
链接:https://pan.baidu.com/s/1lI7wgnMqdrRl6aFxTSENDw?pwd=0820
提取码:0820
2023.6.24-实战:SonarQube平台安装配置(安装成功)(docker方式)
1、安装配置docker
- sonarQube安装官方文档
https://docs.sonarqube.org/9.9/setup-and-upgrade/install-the-server/
- Java (Oracle JRE 11 or OpenJDK 11)
下面是基于Docker的方式安装部署SonaQube:
## 创建数据目录
mkdir -p /data/devops6/sonarqube/{sonarqube_conf,sonarqube_extensions,sonarqube_logs,sonarqube_data}
chmod 777 -R /data/devops6/sonarqube/
## 运行
docker run -itd --name sonarqube9 \
-p 9000:9000 \
-v /data/devops6/sonarqube/sonarqube_conf:/opt/sonarqube/conf \
-v /data/devops6/sonarqube/sonarqube_extensions:/opt/sonarqube/extensions \
-v /data/devops6/sonarqube/sonarqube_logs:/opt/sonarqube/logs \
-v /data/devops6/sonarqube/sonarqube_data:/opt/sonarqube/data \
sonarqube:9.9.0-community
## 验证
[root@Devops6 ~]#docker ps -l
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
663638ab23b3 sonarqube:9.9.0-community "/opt/sonarqube/dock…" About a minute ago Up About a minute 0.0.0.0:9000->9000/tcp, :::9000->9000/tcp sonarqube9
docker logs -f sonarqube9
这里看到Process[ce] is up说明,sonarQube程序已经启动成功了。
访问: http://172.29.9.101:9000/ 默认密码是 admin admin
被要求强制更改密码:admin/Admin@123
sonarqube:9.9.0版本的登录界面:
2、安装中文插件
在线安装或者手动上传插件。
在线安装:操作如下图
来到插件市场安装插件:
装完插件,是需要重启sonarQube的。
点击接受风险后,才可以在插件市场里安装插件:
重启server:
重启后,登录查看效果:
3、配置Scanner
scanner的类型有很多, 可以通过官网:https://docs.sonarqube.org/8.9/analysis/overview/ 获取支持的列表。
- 变更项目代码: 可以使用构建工具进行扫描。例如maven、ant、gradle可以在配置文件中引入对应的配置。
- 不变更项目代码配置: 可以使用Jenkins或其他平台的扩展插件, 以及使用命令行进行扫描。
- Gradle - SonarScanner for Gradle
- .NET - SonarScanner for .NET
- Maven - use the SonarScanner for Maven
- Jenkins - SonarScanner for Jenkins (Jenkins 集成插件)
- Azure DevOps - SonarQube Extension for Azure DevOps (devops平台扩展插件)
- Ant - SonarScanner for Ant
- anything else (CLI) - SonarScanner(更加通用的扫描命令行)
使用更加灵活的命令行工具进行扫描, 可以在不更改项目配置的前提下进行代码扫描:
复制链接地址:
https://docs.sonarqube.org/8.9/analysis/scan/sonarscanner/
## 进入实验目录
cd /data/devops6
## 下载包
wget https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-4.8.0.2856-linux.zip
## 解压
unzip sonar-scanner-cli-4.8.0.2856-linux.zip
## 设置环境变量
vim /etc/profile
export SONAR_SCANNER_HOME=/data/devops6/sonar-scanner-4.8.0.2856-linux
export PATH=$SONAR_SCANNER_HOME/bin:$PATH
source /etc/profile
## 测试生效
[root@Devops6 sonar-scanner-4.8.0.2856-linux]# sonar-scanner -v
INFO: Scanner configuration file: /data/devops6/sonar-scanner-4.8.0.2856-linux/conf/sonar-scanner.properties
INFO: Project root configuration file: NONE
INFO: SonarScanner 4.8.0.2856
INFO: Java 11.0.17 Eclipse Adoptium (64-bit)
INFO: Linux 3.10.0-957.el7.x86_64 amd64
⚠️ 注意JDK版本
这里请注意JDK版本的问题, 默认安装的sonarscanner是使用自带的jdk。通过上面的显示可以发现是jdk1.11版本, 如果想使用系统默认的jdk版本,可以修改scanner可执行程序的配置。如下所示:
[root@devops sonar-scanner-4.7.0.2747-linux]#pwd
/usr/local/sonar-scanner/sonar-scanner-4.7.0.2747-linux
[root@devops sonar-scanner-4.7.0.2747-linux]#ls
bin conf jre lib
[root@devops sonar-scanner-4.7.0.2747-linux]#vim bin/sonar-scanner
### 编辑约第42行, true改成false
42 use_embedded_jre=false
43 if [ "$use_embedded_jre" = true ]; then
44 export JAVA_HOME="$sonar_scanner_home/jre"
45 fi
### 更改后,再次验证,发现变成了系统jdk版本。 更改生效。
[root@devops sonar-scanner-4.7.0.2747-linux]#sonar-scanner -v
INFO: Scanner configuration file: /usr/local/sonar-scanner/sonar-scanner-4.7.0.2747-linux/conf/sonar-scanner.properties
INFO: Project root configuration file: NONE
INFO: SonarScanner 4.7.0.2747
INFO: Java 1.8.0_322 Temurin (64-bit)
INFO: Linux 3.10.0-957.el7.x86_64 amd64
https://docs.sonarqube.org/9.9/requirements/prerequisites-and-overview/
关于我
我的博客主旨:
- 排版美观,语言精炼;
- 文档即手册,步骤明细,拒绝埋坑,提供源码;
- 本人实战文档都是亲测成功的,各位小伙伴在实际操作过程中如有什么疑问,可随时联系本人帮您解决问题,让我们一起进步!
🍀 微信二维码
x2675263825 (舍得), qq:2675263825。
🍀 微信公众号
《云原生架构师实战》
🍀 语雀
https://www.yuque.com/xyy-onlyone
🍀 csdn
https://blog.csdn.net/weixin_39246554?spm=1010.2135.3001.5421
🍀 知乎
https://www.zhihu.com/people/foryouone
最后
好了,关于本次就到这里了,感谢大家阅读,最后祝大家生活快乐,每天都过的有意义哦,我们下期见!