
用于SonarQube的Docker镜像,由CNES预配置插件和设置,专用于持续集成。
该镜像是基于https://github.com/cnescatlab/docker-cat%E8%A1%8D%E7%94%9F%E7%9A%84%E9%A2%84%E9%85%8D%E7%BD%AESonarQube%E6%9C%8D%E5%8A%A1%E5%99%A8%E9%95%9C%E5%83%8F%EF%BC%8C%E5%8C%85%E5%90%AB%E7%9B%B8%E5%90%8C%E7%9A%84%E6%8F%92%E4%BB%B6%E5%92%8C%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%90%E8%A7%84%E5%88%99%EF%BC%8C%E5%9F%BA%E4%BA%8ESonarQube%E7%9A%84LTS%E7%89%88%E6%9C%AC%E6%9E%84%E5%BB%BA%E3%80%82
SonarQube本身是GitHub上的开源项目:https://github.com/SonarSource/sonarqube%E3%80%82
版本和变更日志请参见:https://github.com/cnescatlab/sonarqube/releases%E3%80%82
该镜像基于官方SonarQube LTS镜像(即https://hub.docker.com/_/sonarqube%EF%BC%89%E6%9E%84%E5%BB%BA%EF%BC%8C%E5%B9%B6%E6%8F%90%E4%BE%9B%E4%BB%A5%E4%B8%8B%E9%A2%9D%E5%A4%96%E5%8A%9F%E8%83%BD%EF%BC%9A
此镜像旨在与预配置的sonar-scanner镜像配合使用,后者嵌入了所有必要工具:https://github.com/cnescatlab/sonar-scanner%E3%80%82%E4%BD%86%E5%B9%B6%E9%9D%9E%E5%BF%85%E9%A1%BB%E4%BD%BF%E7%94%A8%E8%AF%A5%E6%89%AB%E6%8F%8F%E5%99%A8%E3%80%82
这是一个标准Docker镜像,可通过以下命令构建:
sh# 从项目根目录执行 $ docker build -t lequal/sonarqube .
运行此镜像的容器方法参见用户指南。
运行测试及创建自定义测试请参见https://github.com/cnescatlab/sonar-scanner/tree/develop/tests%E3%80%82
该镜像已发布至Docker Hub:https://hub.docker.com/r/lequal/sonarqube/%E3%80%82
自创建以来,此镜像即设计用于生产环境,因此绝不容许保留默认admin密码(即"admin")。必须通过设置环境变量SONARQUBE_ADMIN_PASSWORD指定admin账户的新密码。
:warning: :rotating_light: 若SONARQUBE_ADMIN_PASSWORD为空或等于"admin",容器将启动失败。
sh# 推荐选项 $ docker run --name lequalsonarqube \ --rm \ -p 9000:9000 \ -e SONARQUBE_ADMIN_PASSWORD="自定义的admin密码" \ lequal/sonarqube:latest # 停止(并移除)容器 Ctrl-C # 或 $ docker container stop lequalsonarqube
默认情况下,SonarQube使用嵌入式数据库,仅适用于测试环境;生产环境必须使用外部数据库以确保数据持久化。docker-compose.yml文件展示了配置外部PostgreSQL数据库的示例,可通过以下命令运行:
sh$ docker-compose up -d # 运行容器时设置变量 $ LEQUAL_SONARQUBE_VERSION=1.0.0 POSTGRES_PASSWD=secret-passwd SONARQUBE_ADMIN_PASSWORD="密码" docker-compose up -d
使用外部数据库时,SonarQube的数据存储在容器外部,因此容器可随意停止、重启、移除和重建。
| SonarQube 插件 | 版本 | URL |
|---|---|---|
| C# 代码质量与安全 | 10.10.1 (build ***) | [***] |
| C++(社区版) | 2.2.1 (build 1248) | https://github.com/SonarOpenCommunity/sonar-cxx/wiki |
| Checkstyle | 10.23.0 | n/a |
| 边写边清理(Clean as You Code) | 2.4 (build 2018) | [***] |
| 社区分支插件(Community Branch Plugin) | 25.6.0 | https://github.com/mc1arke/sonarqube-community-branch-plugin |
| Findbugs | 4.5.1 | https://github.com/spotbugs/sonar-findbugs/ |
| Flex 代码质量与安全 | 2.14 (build 5032) | [***] |
| Go 代码质量与安全 | 1.23.1.2838 | [***] |
| HTML 代码质量与安全 | 3.19 (build 5695) | [***] |
| IaC 代码质量与安全 | 1.47.0.*** | [***] |
| JaCoCo | 1.3.0 (build 1538) | n/a |
| Java 高级代码质量分析器 | 8.14.1 (build 39293) | [***] |
| Java 代码质量与安全 | 8.14.1 (build 39293) | [***] |
| JavaScript/TypeScript/CSS 代码质量与安全 | 10.23 (build 32711) | [***] |
| Kotlin 代码质量与安全 | 3.2.0 (build 7239) | [***] |
| PHP 代码质量与安全 | 3.46.0.*** | [***] |
| PMD | 4.0.3 | https://github.com/jborgers/sonar-pmd |
| Python 代码质量与安全 | 5.4 (build 22255) | [***] |
| Ruby 代码质量与安全 | 1.19.0 (build 471) | [***] |
| Rust 代码质量与安全 | 1.0.3.786 | n/a |
| Scala 代码质量与安全 | 1.19.0 (build 484) | [***] |
| Sonar i-Code CNES 插件 | 5.2.0 | https://github.com/cnescatlab/sonar-icode-cnes-plugin |
| SonarQube CNES 报告 | 5.0.2 | https://github.com/cnescatlab/sonar-cnes-report |
| 文本代码质量与安全 | 2.24.1.6530 | [***] |
| VB.NET 代码质量与安全 | 10.10.1 (build ***) | [***] |
| XML 代码质量与安全 | 2.13 (build 5938) | [***] |
| YAML 分析器 | 1.9.1 | https://github.com/sbaudoin/sonar-yaml |
要更新此列表,请运行以下脚本:
shwhile IFS='|' read -r plugin version url do if [ "$url" = "null" ]; then url="n/a"; fi printf "| %.60s| %.25s| %.75s|\n" "$plugin " "$version " "$url " done < <(curl -u MY_TOKEN: -s http://localhost:9000/api/plugins/installed | jq -r '.plugins[] | "\(.name)|\(.version)|\(.homepageUrl)"') # 其中 `MY_TOKEN` 是你的SonarQube个人令牌
建议在http://localhost:9000/admin/settings中设置属性sonar.core.serverBaseURL,以确保PR评论和邮件中的链接正常工作。
如遇镜像问题,请提交issue,说明复现步骤并粘贴日志。
如需提交PR,请说明PR的原因;若修复了某个issue,请注明issue编号或在PR中说明复现步骤。
详细信息参见https://github.com/cnescatlab/.github/blob/master/CONTRIBUTING.md%E3%80%82
Bug报告和功能请求:https://github.com/cnescatlab/sonar-scanner/issues
要贡献项目,请阅读https://github.com/cnescatlab/.github/wiki/CATLab's-Workflows%E3%80%82
基于GNU通用公共许可证3.0版授权
本项目是自由软件;您可以根据自由软件基金会发布的GNU通用公共许可证第3版(或任何更高版本)的条款重新分发和/或修改它。
以下是 lequal/sonarqube 相关的常用 Docker 镜像,适用于 不同场景 等不同场景:
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。



探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
docker search 限制
站内搜不到镜像
离线 save/load
插件要用 plugin install
WSL 拉取慢
安全与 digest
新手拉取配置
镜像合规机制
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
域名连通性排查
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务