
本Dockerfile用于构建SonarQube容器镜像,提供代码质量分析服务。SonarQube是一款开源的代码质量管理平台,支持多种编程语言,可帮助开发团队持续检查代码质量,识别漏洞和改进空间。
当前版本:5.6
开始前,请确保已安装以下依赖:
可通过以下命令验证安装是否成功:
bashdocker version docker-compose --version
如遇到问题,可在https://github.com/harbur/docker-sonarqube/issues%E9%A1%B5%E9%9D%A2%E6%8F%90%E4%BA%A4%E6%8A%A5%E5%91%8A%E3%80%82%E6%8A%A5%E5%91%8A%E4%B8%AD%E8%AF%B7%E5%8C%85%E5%90%AB%EF%BC%9A
docker version命令的输出docker run或docker-compose命令(敏感信息请脱敏)推荐从Docker仓库拉取镜像,便于后续更新:
bashdocker pull harbur/sonarqube:latest
镜像支持版本标签,可指定特定版本拉取,例如:
bashdocker pull harbur/sonarqube:5.6
如需构建5.6版本镜像,可执行以下命令:
bashgit clone https://github.com/harbur/docker-sonarqube.git cd docker-sonarqube docker build --tag="$USER/sonarqube" .
通过Docker Compose启动SonarQube,docker-compose.yml文件定义了服务环境:
bashgit clone https://github.com/harbur/docker-sonarqube.git cd docker-sonarqube docker-compose up
注意:默认构建Sonar 5.6容器。如需运行预构建的5.1版本,请相应编辑
docker-compose.yml文件。 注意:SonarQube应用启动需1-2分钟,请耐心等待。
在另一个终端执行:
bashmake port
通过输出的URL访问SonarQube,使用默认凭据登录:
此时SonarQube已启动并可用于测试。如需生产环境使用,请继续阅读配置说明。
SonarQube使用PostgreSQL作为后端数据库存储数据。数据库以独立容器运行,通过Docker Compose处理容器链接。
数据库容器会自动创建用户和数据库,用户凭据、数据库名称及主机名通过环境变量和容器链接注入SonarQube容器。
SonarQube容器本身不包含数据库,需通过docker-compose命令运行(或手动编写docker命令),符合单一职责原则和面向服务架构设计模式,确保可移植性。
数据库使用orchardup/postgresql镜像,通过卷(Volume)/var/lib/postgresql持久化存储数据。
PostgreSQL数据库容器通过卷/var/lib/postgresql持久化数据。如需本地挂载卷,可在docker-compose.yml的postgres部分添加:
yamlvolumes: - /opt/db/sonarqube/:/var/lib/postgresql
注意:本地挂载卷会使所有实例指向同一目录,适用于仅需一个SonarQube实例的场景。
连接数据库的步骤:
bashdocker-compose up -d postgresql docker-compose run postgresql bash -c 'PGPASSWORD=$POSTGRESQL_PASS psql -h $POSTGRESQL_1_PORT_5432_TCP_ADDR $POSTGRESQL_DB $POSTGRESQL_USER'
第一条命令启动PostgreSQL数据库,第二条命令通过客户端连接数据库。Docker Compose自动链接容器并通过环境变量传递连接信息。
为便于调试和维护,可通过nsenter工具(util-linux包的一部分)访问容器shell。部分Linux发行版(如Ubuntu)的util-linux版本较旧,不含nsenter,可通过以下命令安装:
bashdocker run --rm -v /usr/local/bin:/target jpetazzo/nsenter
安装后,通过以下命令访问容器shell:
bashsudo docker-enter dockersonarqube_sonarqube_1 sudo docker-enter dockersonarqube_postgresql_1
更多信息请参考:https://github.com/jpetazzo/nsenter 或 https://jpetazzo.github.io/2014/03/23/lxc-attach-nsinit-nsenter-docker-0-9/%EF%BC%88%60nsinit%60%E5%B7%A5%E5%85%B7%EF%BC%89%E3%80%82
受 https://github.com/sameersbn/docker-gitlab 和 https://github.com/sameersbn/docker-redmine 启发。
docker-sonarqube采用MIT许可证。
版权所有 © 2014-2015 Harbur.io
特此授予任何人免费获取本软件及相关文档文件("软件")的副本,不受限制地处理软件,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件副本的权利,并允许向其提供软件的人这样做,但须符合以下条件:
上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。
本软件按"原样"提供,不提供任何明示或暗示的保证,包括但不限于适销性、特定用途适用性和非侵权性的保证。在任何情况下,作者或版权持有人均不对因软件或软件的使用或其他交易引起的任何索赔、损害或其他责任承担责任,无论是合同诉讼、侵权行为还是其他形式。
以下是 harbur/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 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务