
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
本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 docker.xuanyuan.run/harbur/sonarqube:latest
镜像支持版本标签,可指定特定版本拉取,例如:
bashdocker pull docker.xuanyuan.run/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 docker.xuanyuan.run/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 镜像,适用于 不同场景 等不同场景: