SonarQube社区版2026:从0到1安装与平滑升级实战指南
SonarQube 简介
SonarQube 是一款本地代码分析工具,旨在检测30 多种编程语言、框架和 IaC platforms平台中的编码问题。通过直接与您的CI 流水线或我们支持的 DevOps 平台集成,您的代码将根据一组广泛的规则进行检查,这些规则涵盖代码的许多属性,例如每个合并/拉取请求的可维护性、可靠性和安全问题
SonarQube 主要在各种规则分析下,保障你交付一份高质量干净的标准代码
- 如何清洁代码
干净的代码是所有代码的标准,可产生安全、可靠和可维护的软件,因此,编写干净的代码对于维护健康的代码库至关重要。这适用于所有代码:源代码、测试代码、基础设施即代码、粘合代码、脚本等等
Sonar 的Clean as You Code方法是一种软件开发实践,其原则是新代码(您最近添加或修改的代码)需要符合质量标准。 Sonar 解决方案通过在新代码中检测到问题时向您发出警告来实现“代码清洁”,通过逐步改进整个代码库来帮助您保持高标准并专注于代码质量
SonarQube 附带专为每种支持的语言设计的内置质量配置文件,称为Sonar Way配置文件。 Sonar 方式激活了一组适用于大多数项目的规则,并且是帮助您在组织中实施干净代码实践的起点
- SonarQube 解决方案
Sonar 产品旨在帮助实现清洁代码状态。通过链接SonarLint使用SonarCloud或 SonarQube,可以在开发过程的每个阶段执行检查;我们称之为SonarQube解决方案。这意味着您的项目设置、新代码定义和质量配置文件将在本地应用到 IDE 中的分析。 Sonar 解决方案旨在帮助您实现干净代码的状态。在 SonarCloud 中管理的项目设置、新代码定义和质量配置文件将在本地应用到 IDE 中的分析
SonarLint 有助于及早发现问题,因为它在 IDE 中提供即时反馈。当工程师编写代码时,他们甚至可以在提交之前发现并修复问题
SonarQube和SonarCloud将在合并之前分析每个拉取请求,从而针对代码问题提供另一层保护
SonarQube和SonarCloud分析每个构建上的代码,作为 CI/CD 工作流程的一部分,并结合质量配置文件,防止有问题的代码发布到生产环境
Sonar 解决方案可帮助工程师关注新代码,从而帮助您整合“Clean as You Code”方法。在开发过程中专注于编写新的、干净的代码可确保发布到生产环境的所有代码都将随着时间的推移逐步得到改进
- SonarQube Connected Mode
Connected Mode将 SonarCloud 与 SonarLint 结合起来,提供完整的 Sonar 解决方案。在Connected Mode下,当质量门发生更改或向用户分配新问题时,SonarCloud 会向 SonarLint 发送通知。创建或编辑连接设置时,可以从 SonarLint UI 启用或禁用智能通知。此外,SonarLint 通过使用服务器上定义的新代码定义,帮助工程师专注于编写干净的代码
准备
linux:Ubuntu 24.04.3 LTS(其他linux版本也可)
docker:28.4.0
docker-compose:Docker Compose version v5.1.0
安装
sonarqube:26.2.0.119303-community 版本如下:
# cat docker-compose.yml
version: "3"
services:
sonarqube:
image: docker.1ms.run/sonarqube:26.2.0.119303-community
depends_on:
- db
environment:
SONAR_JDBC_URL: jdbc:postgresql://db:5432/sonar
SONAR_JDBC_USERNAME: sonar
SONAR_JDBC_PASSWORD: sonar
volumes:
- sonarqube_data:/opt/sonarqube/data
- sonarqube_extensions:/opt/sonarqube/extensions
- sonarqube_logs:/opt/sonarqube/logs
ports:
- "9000:9000"
db:
image: swr.cn-north-4.myhuaweicloud.com/ddn-k8s/ghcr.io/cloudnative-pg/postgresql:17.4-bookworm
environment:
POSTGRES_USER: sonar
POSTGRES_PASSWORD: sonar
volumes:
- postgresql_data:/var/lib/postgresql/data
volumes:
sonarqube_data:
sonarqube_extensions:
sonarqube_logs:
postgresql:
postgresql_data:
启动
docker-compose up -d
访问

设置
默认用户名和密码都是admin,登录之后,会有提示修改为强密码。
升级之前先备份数据库(默认是pg)
进入pg12所在容器
docker exec -it sonarqube-db-1 /bin/bash
进行备份
cd / &&
pg_dumpall -U ${POSTGRES_USER:-postgres} > full_backup_$(date +%Y%m%d_%H%M%S).sql
退出容器,将sql复制到宿主机
docker cp sonarqube-db-1:/full_backup_20260305_075458.sql .
Successfully copied 21.7MB to /usr/local/src/sonarqube/.
查看备份sql
root@devin-ubuntu24043:/usr/local/src/sonarqube# ls -lh
total 21M
-rw-r--r-- 1 root root 974 Mar 5 06:24 docker-compose.yml
-rw-r--r-- 1 root root 21M Mar 5 07:54 full_backup_20260305_075458.sql
升级sonarqube
更新镜像为新的版本,这里升级到26年3月版本
...
image: docker.1ms.run/sonarqube:26.3.0.120487-community
...
重建sonarqube服务,不重启数据库
# 只更新 sonarqube 服务,保留 db 服务运行
docker-compose pull # 如果是拉取新镜像
docker-compose up -d sonarqube

提示在维护中,查看日志和文档之后,需要手动进行数据备份,然后升级。
迁移数据
访问链接
http://192.168.19.21:9000/setup
根据步骤进行迁移即可

根据提示说要先进行备份,我们在前边已经完成,可以顺利点下一步

这里开始更新数据库

更新完成开始启动
升级完成

文档信息
- 作者: 运维技术团队 - 辣个男人Devin
- 发布日期: 2026年03月05日
- 适用系统: Ubuntu 24.04.3 LTS
参考链接
- sonarqube installer:
https://docs.sonarsource.com/sonarqube-community-build/server-installation/from-docker-image/set-up-and-start-container
sonarqube社区版安装 - sonarsource update:
https://docs.sonarsource.com/sonarqube-community-build/server-update-and-maintenance/update/roadmap
版本升级路线图与兼容性检查