
arm64v8/sonarqubearm64v8/sonarqube 是 SonarQube 官方 Docker 镜像的 arm64v8 架构版本,用于存储 SonarQube Server 和 SonarQube Community Build 的官方镜像。
SonarQube Server(前身为 SonarQube)是一款本地部署的代码分析工具,支持检测 30 多种语言、框架和 IaC 平台中的质量与安全问题,并通过 Sonar AI CodeFix 能力提供基于 AI 的修复建议。该工具可直接集成到 CI 流水线或主流 DevOps 平台,在每次合并/拉取请求时对代码进行全面检查,覆盖可维护性、可靠性、安全性等多维度指标。
SonarQube Community Build(前身为 SonarQube Community)是 Sonar 提供的免费自管理版本,每月更新,包含开源核心功能,支持 21 种编程语言和框架的基础 bug 检测、代码异味识别及安全问题分析。商业版本(SonarQube Server Developer、Enterprise、Data Center 版)则提供高级安全分析、企业级集成和可扩展性特性。
| 标签系列 | Dockerfile 链接 |
|---|---|
2025.5.0-developer, 2025.5-developer, developer | 链接 |
2025.5.0-enterprise, 2025.5-enterprise, enterprise | 链接 |
2025.5.0-datacenter-app, 2025.5-datacenter-app, datacenter-app | 链接 |
2025.5.0-datacenter-search, 2025.5-datacenter-search, datacenter-search | 链接 |
2025.4.3-developer, 2025.4-developer | 链接 |
2025.4.3-enterprise, 2025.4-enterprise | 链接 |
2025.4.3-datacenter-app, 2025.4-datacenter-app | 链接 |
2025.4.3-datacenter-search, 2025.4-datacenter-search | 链接 |
2025.1.4-developer, 2025.1-developer, 2025-lta-developer | 链接 |
2025.1.4-enterprise, 2025.1-enterprise, 2025-lta-enterprise | 链接 |
2025.1.4-datacenter-app, 2025.1-datacenter-app, 2025-lta-datacenter-app | 链接 |
2025.1.4-datacenter-search, 2025.1-datacenter-search, 2025-lta-datacenter-search | 链接 |
25.10.0.***-community, community, latest | 链接 |
SonarQube 依赖嵌入式 Elasticsearch,Docker 主机需满足以下配置(以 Linux 为例):
bash# 设置虚拟内存映射数 sysctl -w vm.max_map_count=524288 # 设置文件描述符上限 sysctl -w fs.file-max=*** # 设置当前会话的文件描述符限制 ulimit -n *** # 设置用户进程数限制 ulimit -u 8192
通过以下命令启动社区版演示实例(仅用于测试,不建议生产环境):
bashdocker run --name sonarqube-demo -p 9000:9000 arm64v8/sonarqube:community
访问 http://localhost:9000,默认账号密码:admin/admin。
推荐使用外部数据库(如 PostgreSQL)存储数据,避免嵌入式 H2 数据库的局限性。以下示例使用 PostgreSQL 并挂载数据卷:
bash# 创建数据卷 docker volume create sonarqube_data docker volume create sonarqube_logs docker volume create sonarqube_extensions # 启动 SonarQube(需先启动 PostgreSQL 并配置环境变量) docker run -d \ --name sonarqube \ -p 9000:9000 \ -e SONAR_JDBC_URL=jdbc:postgresql://<postgresql-host>:5432/sonarqube \ -e SONAR_JDBC_USERNAME=<db-username> \ -e SONAR_JDBC_PASSWORD=<db-password> \ -v sonarqube_data:/opt/sonarqube/data \ -v sonarqube_logs:/opt/sonarqube/logs \ -v sonarqube_extensions:/opt/sonarqube/extensions \ --stop-timeout 3600 \ # 允许1小时优雅关闭(等待任务完成) arm64v8/sonarqube:community
创建 docker-compose.yml 文件,集成 SonarQube 和 PostgreSQL:
yamlversion: '3.8' services: sonarqube: image: arm64v8/sonarqube:community container_name: sonarqube ports: - "9000:9000" environment: - SONAR_JDBC_URL=jdbc:postgresql://db:5432/sonarqube - SONAR_JDBC_USERNAME=sonar - SONAR_JDBC_PASSWORD=sonar_password volumes: - sonarqube_data:/opt/sonarqube/data - sonarqube_logs:/opt/sonarqube/logs - sonarqube_extensions:/opt/sonarqube/extensions depends_on: - db stop_grace_period: 1h # 优雅关闭超时时间 db: image: arm64v8/postgres:14 container_name: sonarqube_db environment: - POSTGRES_USER=sonar - POSTGRES_PASSWORD=sonar_password - POSTGRES_DB=sonarqube volumes: - postgres_data:/var/lib/postgresql/data volumes: sonarqube_data: sonarqube_logs: sonarqube_extensions: postgres_data:
启动服务:
bashdocker-compose up -d
默认端口为 9000,通过 -p <host-port>:9000 映射到主机端口。
常用环境变量用于配置数据库连接及服务参数:
| 环境变量 | 说明 | 示例 |
|---|---|---|
SONAR_JDBC_URL | 数据库连接 URL | jdbc:postgresql://db:5432/sonarqube |
SONAR_JDBC_USERNAME | 数据库用户名 | sonar |
SONAR_JDBC_PASSWORD | 数据库密码 | sonar_password |
SONAR_WEB_JAVAOPTS | Web 进程 JVM 参数 | -Xmx1G -Xms1G |
推荐挂载以下目录以持久化数据和配置:
/opt/sonarqube/data:存储数据库数据、Elasticsearch 索引等/opt/sonarqube/logs:服务日志/opt/sonarqube/extensions:第三方插件通过 Dockerfile 构建包含自定义插件的镜像:
dockerfileFROM arm64v8/sonarqube:community # 复制自定义插件到扩展目录 COPY sonar-custom-plugin-1.0.jar /opt/sonarqube/extensions/plugins/
构建并运行:
bashdocker build -t sonarqube-custom . docker run -d --name sonarqube-custom -p 9000:9000 sonarqube-custom
SonarQube 需等待进行中的任务完成后优雅关闭,默认 Docker 10 秒超时可能导致进程被强制终止。通过 --stop-timeout 或 stop_grace_period(Docker Compose)设置超时:
bash# 允许1小时优雅关闭 docker run --stop-timeout 3600 arm64v8/sonarqube:community
升级需遵循官方指南,确保数据兼容性。详细步骤参考 从 Docker 镜像升级 SonarQube。
SonarQube 实例管理文档参见 官方管理指南。
镜像中包含的其他软件可能受不同许可证约束,用户需自行确保合规使用。


manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务