SonarQube部署

程小虎2026-01-28 11:17:44

📌 文档信息

  • 作者: 周斌
  • 创建时间: 2026-01-28
  • 最近修订: 2026-01-30
  • 版本号: v1.0

📄 SonarQube 7.8 社区版部署与使用手册

✨ 环境准备

📄 系统要求

  • Docker、Docker-Compose 已安装并运行
  • Maven 已安装(用于代码分析)
  • 磁盘空间:至少 2GB 可用空间
  • 内存:建议 4GB 以上

🛠️ SonarQube 部署步骤

安装过程中需要使用root用户进行安装,若系统当前用户为非root用户(必须是配置了sudo免密),则先执行下面命令切换为root用户

sudo su - root

执行下面命令,创建文件上传目录

mkdir /soft

将Docker安装包对应的文件夹 [ ],上传至/soft 路径下,若一开始登录的时非root用户,可以先上传到 /tmp 路径下,然后移动到 /soft

  • sonarqube-7.8-community.tar:Sonar离线镜像包
  • mysql-5.7.tar:MySQL离线镜像包(Sonar运行依赖MySQL)
  • sonar-l10n-zh-plugin-1.28.jar:Sonar中文插件
  • install_sonar.sh:一键安装脚本
[root@huge soft]# cd /soft/Sona
[root@huge Sona]# ll
总用量 1252576
-rw-r--r-- 1 root root     10224 130 14:02 install_sonar.sh
-rw-r--r-- 1 root root 519596032 130 14:02 mysql-5.7.tar
-rw-r--r-- 1 root root     47581 130 14:02 sonar-l10n-zh-plugin-1.28.jar
-rw-r--r-- 1 root root 763025920 130 14:02 sonarqube-7.8-community.tar

直接执行脚本即可安装

[root@huge Sona]# bash install_sonar.sh 

导入Sonar离线镜像 [ sonarqube-7.8-community.tar ]                                                                                  
导入MySQL离线镜像 [ mysql-5.7.tar ]                                                                                  
创建Sonar配置文件                                                                                  

通过Docker-Compose启动Sonar                                                                                  

[+] Running 3/3
 ✔ Network sona_default  Created                                                        0.0s 
 ✔ Container mysql5.7    Healthy                                                        11.1s 
 ✔ Container sonar       Started                                                        11.6s 

恭喜!Sonar部署成功。请登录以下地址访问:                                                                                  
====================================
    登录地址:192.168.80.12:9000
    用户名:admin
    密码:admin
====================================

🛠️SonarQube 初始配置

📄 访问 SonarQube

  • 地址:http://192.168.181.181:9090
  • 默认账号:admin
  • 默认密码:admin

📄 首次登录后需要

  1. 按照提示修改默认密码
  2. 创建新项目或使用已有项目

📄 生成 Token(用于代码分析)

  1. 右上角点击用户头像 → My Account
  2. 选择 Security 标签页
  3. 输入 Token 名称(如:common-biz)
  4. 点击 Generate 生成 Token
  5. 保存生成的 Token:fb87b77a8a66271dcb2e15b17dd2f3d8206aba11

📄 项目代码分析配置

📄 直接使用 Maven 命令

mvn sonar:sonar \
  -Dsonar.projectKey=common-biz \
  -Dsonar.host.url=http://192.168.181.181:9090 \
  -Dsonar.login=fb87b77a8a66271dcb2e15b17dd2f3d8206aba11

📄 单行命令

mvn sonar:sonar -Dsonar.projectKey=common-biz -Dsonar.host.url=http://192.168.181.181:9090 -Dsonar.login=fb87b77a8a66271dcb2e15b17dd2f3d8206aba11

📄 在 Jenkins Pipeline 中使用

sh '''
  mvn sonar:sonar \
    -Dsonar.projectKey=common-biz \
    -Dsonar.host.url=http://192.168.181.181:9090 \
    -Dsonar.login=fb87b77a8a66271dcb2e15b17dd2f3d8206aba11
'''

📄 结合项目构建

sh '''
  mvn --update-snapshots \
    -Dmaven.test.skip=true \
    clean package \
    sonar:sonar \
    -Dsonar.projectKey=common-biz \
    -Dsonar.host.url=http://192.168.181.181:9090 \
    -Dsonar.login=fb87b77a8a66271dcb2e15b17dd2f3d8206aba11
'''

📄 常见问题排查

📄 容器启动失败

# 查看容器日志
docker logs -f sonar

# 查看运行状态
docker ps -a | grep sonar

📄 数据库连接问题

  • 确认 MySQL 容器运行正常:docker ps | grep mysql
  • 确认网络连通性:telnet 192.168.181.181 13306
  • 检查数据库用户权限

📄 SonarQube 无法访问

  • 检查防火墙设置:firewall-cmd --list-ports
  • 确认端口映射:docker port sonar
  • 查看服务日志:tail -f /data/docker/sonarqube/logs/sonar.log

📄 代码分析失败

  • 确认 Token 有效
  • 检查项目密钥(projectKey)是否正确
  • 确认 Maven 版本支持 SonarQube 插件

📄 维护命令

📄 重启服务

docker restart sonar
docker restart mysql5.7

📄 备份数据

# 备份 MySQL 数据
docker exec mysql5.7 mysqldump -uroot -pAdmin123... sonar > sonar_backup_$(date +%Y%m%d).sql

# 备份 SonarQube 配置文件
tar czf sonarqube_conf_backup_$(date +%Y%m%d).tar.gz /data/docker/sonarqube/conf

📄 查看资源使用

# 查看容器资源使用
docker stats sonar mysql5.7

# 查看磁盘空间
df -h /data

📄 注意事项

  1. 安全警告:本示例使用简单密码,生产环境请使用强密码
  2. 数据备份:定期备份数据库和配置文件
  3. 版本兼容:SonarQube 7.8 与特定版本的 MySQL 和 Java 兼容
  4. 性能考虑:SonarQube 对内存要求较高,大型项目建议增加内存分配
  5. 网络配置:确保 SonarQube 服务器可被构建节点访问

适用版本:SonarQube 7.8 Community Edition
参考文献https://www.tcxurun.cn/2024/12/10/使用docker方式安装sonar-7-8-扫描jdk1-8项目/open in new window

最近更新 3/19/2026, 9:06:05 AM