本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com
SonarQube™ 是一款开源代码质量管理平台,用于分析和度量代码的技术质量。它能帮助开发人员在早期阶段检测代码问题、安全漏洞和缺陷,支持多种编程语言,提供可操作的质量报告,是持续集成和代码审查流程中的关键工具。
Bitnami SonarQube™ 镜像是基于 Bitnami 安全镜像标准构建的容器化部署方案,具备以下特点:
自 2025 年 8 月 28 日起,Bitnami 将升级公共镜像目录,推出 Bitnami Secure Images 计划,聚焦安全加固镜像:
docker.io/bitnamilegacy 仓库,不再接收更新详情参见 Bitnami Secure Images 公告。
Bitnami SonarQube™ 镜像提供多种标签,支持不同版本和操作系统。标签策略遵循 Bitnami 标准,分为滚动标签(如 latest)和不可变标签(如特定版本号)。具体标签列表及对应 Dockerfile 链接可通过以下途径获取:
推荐通过 Docker Hub 获取预构建镜像:
# 获取最新版 docker pull bitnami/sonarqube:latest # 获取特定版本(如存在) docker pull bitnami/sonarqube:[TAG] # 替换 [TAG] 为具体版本号
从 GitHub 仓库克隆源码并构建:
git clone [***] cd bitnami/sonarqube/[VERSION]/[OS] # 替换 [VERSION] 和 [OS] 为具体值 docker build -t bitnami/sonarqube:latest .
SonarQube™ 依赖 PostgreSQL 数据库存储数据,以下示例使用 Bitnami PostgreSQL 镜像作为数据库。
docker network create sonarqube-network
# 创建持久化卷 docker volume create postgresql_data # 启动 PostgreSQL(允许空密码仅用于开发) docker run -d --name postgresql \ --env ALLOW_EMPTY_PASSWORD=yes \ --env POSTGRESQL_USERNAME=bn_sonarqube \ --env POSTGRESQL_PASSWORD=bitnami \ --env POSTGRESQL_DATABASE=bitnami_sonarqube \ --network sonarqube-network \ --volume postgresql_data:/bitnami/postgresql \ bitnami/postgresql:latest
# 创建持久化卷 docker volume create sonarqube_data # 启动 SonarQube™ docker run -d --name sonarqube \ -p 8080:9000 # 映射容器内 9000 端口到主机 8080 --env ALLOW_EMPTY_PASSWORD=yes \ --env SONARQUBE_DATABASE_USER=bn_sonarqube \ --env SONARQUBE_DATABASE_PASSWORD=bitnami \ --env SONARQUBE_DATABASE_NAME=bitnami_sonarqube \ --env SONARQUBE_DATABASE_HOST=postgresql \ --network sonarqube-network \ --volume sonarqube_data:/bitnami/sonarqube \ bitnami/sonarqube:latest
访问应用:http://<主机IP>:8080(默认凭据:admin/bitnami)。
version: '2' services: postgresql: image: bitnami/postgresql:latest volumes: - postgresql_data:/bitnami/postgresql environment: - ALLOW_EMPTY_PASSWORD=yes - POSTGRESQL_USERNAME=bn_sonarqube - POSTGRESQL_PASSWORD=bitnami - POSTGRESQL_DATABASE=bitnami_sonarqube sonarqube: image: bitnami/sonarqube:latest ports: - '8080:9000' volumes: - sonarqube_data:/bitnami/sonarqube environment: - ALLOW_EMPTY_PASSWORD=yes - SONARQUBE_DATABASE_HOST=postgresql - SONARQUBE_DATABASE_PORT_NUMBER=5432 - SONARQUBE_DATABASE_USER=bn_sonarqube - SONARQUBE_DATABASE_PASSWORD=bitnami - SONARQUBE_DATABASE_NAME=bitnami_sonarqube depends_on: - postgresql volumes: postgresql_data: driver: local sonarqube_data: driver: local
docker-compose up -d
注意:此 Compose 配置仅用于开发/测试,生产环境需使用 Bitnami Helm Chart。
为避免容器删除导致数据丢失,需持久化 SonarQube 和 PostgreSQL 的数据目录。
通过 docker volume 创建卷并挂载,卷由 Docker 管理,安全性更高:
# PostgreSQL 卷(已在 7.1 中示例) docker volume create postgresql_data # SonarQube 卷(已在 7.1 中示例) docker volume create sonarqube_data
将主机目录直接挂载到容器,需确保目录权限正确(非 root 容器依赖 UID 1001):
修改 docker-compose.yml 中的 volumes 部分:
services: postgresql: volumes: - - postgresql_data:/bitnami/postgresql + - /path/to/host/postgresql:/bitnami/postgresql # 替换为实际主机路径 sonarqube: volumes: - - sonarqube_data:/bitnami/sonarqube + - /path/to/host/sonarqube:/bitnami/sonarqube # 替换为实际主机路径 -volumes: - postgresql_data: - sonarqube_data:
# 启动 PostgreSQL docker run -d --name postgresql \ --network sonarqube-network \ --volume /path/to/host/postgresql:/bitnami/postgresql \ # 主机目录 [其他环境变量] \ bitnami/postgresql:latest # 启动 SonarQube™ docker run -d --name sonarqube \ --network sonarqube-network \ --volume /path/to/host/sonarqube:/bitnami/sonarqube \ # 主机目录 [其他环境变量] \ bitnami/sonarqube:latest
| 变量名 | 描述 | 默认值 |
|---|---|---|
SONARQUBE_MOUNTED_PROVISIONING_DIR | 初始配置文件挂载目录 | /bitnami/sonarqube-provisioning |
SONARQUBE_DATA_TO_PERSIST | 需持久化的文件路径(相对于安装目录,空格分隔多值) | ${SONARQUBE_DATA_DIR} ${SONARQUBE_EXTENSIONS_DIR} |
SONARQUBE_PORT_NUMBER | Web 应用端口 | 9000 |
SONARQUBE_ELASTICSEARCH_PORT_NUMBER | Elasticsearch 端口 | 9001 |
SONARQUBE_START_TIMEOUT | 应用启动超时时间(秒) | 300 |
SONARQUBE_SKIP_BOOTSTRAP | 是否跳过初始引导(如数据库已有数据时需设为 yes) | no |
SONARQUBE_WEB_CONTEXT | 应用访问前缀(如 /sonarqube) | / |
SONARQUBE_MAX_HEAP_SIZE | 服务最大堆内存(CE、Search、Web) | nil(无默认值) |
SONARQUBE_MIN_HEAP_SIZE | 服务最小堆内存(CE、Search、Web) | nil(无默认值) |
SONARQUBE_ELASTICSEARCH_JAVA_ADD_OPTS | Elasticsearch 额外 Java 参数 | nil(无默认值) |
SONARQUBE_EXTRA_PROPERTIES | sonar.properties 额外属性(格式:key1=val1,key2=val2) | nil(无默认值) |
SONARQUBE_USERNAME | 管理员用户名 | admin |
SONARQUBE_PASSWORD | 管理员密码 | bitnami |
SONARQUBE_EMAIL | 管理员邮箱 | *** |
SONARQUBE_SMTP_HOST | SMTP 服务器地址(用于邮件通知) | nil(无默认值) |
SONARQUBE_SMTP_PORT_NUMBER | SMTP 端口 | nil(无默认值) |
SONARQUBE_SMTP_USER | SMTP 用户名 | nil(无默认值) |
SONARQUBE_SMTP_PASSWORD | SMTP 密码 | nil(无默认值) |
SONARQUBE_SMTP_PROTOCOL | SMTP 协议(如 tls) | nil(无默认值) |
SONARQUBE_DATABASE_HOST | 数据库主机地址 | postgresql(默认连接名为 postgresql 的容器) |
SONARQUBE_DATABASE_PORT_NUMBER | 数据库端口 | 5432 |
SONARQUBE_DATABASE_NAME | 数据库名称 | bitnami_sonarqube |
SONARQUBE_DATABASE_USER | 数据库用户名 | bn_sonarqube |
SONARQUBE_DATABASE_PASSWORD | 数据库密码 | nil(无默认值) |
| 变量名 | 描述 | 值 |
|---|---|---|
SONARQUBE_BASE_DIR | 安装目录 | ${BITNAMI_ROOT_DIR}/sonarqube |
SONARQUBE_DATA_DIR | 数据目录 | ${SONARQUBE_BASE_DIR}/data |
SONARQUBE_EXTENSIONS_DIR | 扩展目录 | ${SONARQUBE_BASE_DIR}/extensions |
SONARQUBE_CONF_DIR | 配置文件目录 | ${SONARQUBE_BASE_DIR}/conf |
SONARQUBE_CONF_FILE | 主配置文件 | ${SONARQUBE_CONF_DIR}/sonar.properties |
SONARQUBE_LOGS_DIR | 日志目录 | ${SONARQUBE_BASE_DIR}/logs |
SONARQUBE_LOG_FILE | 主日志文件 | ${SONARQUBE_LOGS_DIR}/sonar.log |
SONARQUBE_TMP_DIR | 临时文件目录 | ${SONARQUBE_BASE_DIR}/temp |
SONARQUBE_PID_FILE | PID 文件路径 | ${SONARQUBE_BASE_DIR}/pids/SonarQube.pid |
SONARQUBE_BIN_DIR | 可执行文件目录 | ${SONARQUBE_BASE_DIR}/bin/linux-x86-64 |
SONARQUBE_VOLUME_DIR | 挂载配置目录 | ${BITNAMI_VOLUME_DIR}/sonarqube |
SONARQUBE_DAEMON_USER | 运行用户 | sonarqube |
SONARQUBE_DAEMON_USER_ID | 运行用户 UID | 1001 |
SONARQUBE_DAEMON_GROUP | 运行用户组 | sonarqube |
SONARQUBE_DAEMON_GROUP_ID | 运行用户组 GID | 1001 |
SONARQUBE_CE_JAVA_ADD_OPTS | 计算引擎额外 Java 参数 | ${SONARQUBE_CE_JAVA_ADD_OPTS:-} ${JAVA_TOOL_OPTIONS:-} |
SONARQUBE_WEB_JAVA_ADD_OPTS | Web 服务额外 Java 参数 | ${SONARQUBE_WEB_JAVA_ADD_OPTS:-} ${JAVA_TOOL_OPTIONS:-} |
SONARQUBE_DEFAULT_DATABASE_HOST | 默认数据库主机 | postgresql |
docker run -d --name sonarqube \ -p 8080:9000 \ --network sonarqube-network \ --env SONARQUBE_DATABASE_HOST=postgresql \ --env SONARQUBE_DATABASE_USER=bn_sonarqube \ --env SONARQUBE_DATABASE_PASSWORD=bitnami \ --env SONARQUBE_DATABASE_NAME=bitnami_sonarqube \ --env SONARQUBE_SMTP_HOST=smtp.gmail.com \ --env SONARQUBE_SMTP_PORT_NUMBER=587 \

免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录方式配置轩辕镜像加速服务,包含7个详细步骤
在 Linux 系统上配置轩辕镜像源,支持主流发行版
在 Docker Desktop 中配置轩辕镜像加速,适用于桌面系统
在 Docker Compose 中使用轩辕镜像加速,支持容器编排
在 k8s 中配置 containerd 使用轩辕镜像加速
在宝塔面板中配置轩辕镜像加速,提升服务器管理效率
在 Synology 群晖NAS系统中配置轩辕镜像加速
在飞牛fnOS系统中配置轩辕镜像加速
在极空间NAS中配置轩辕镜像加速
在爱快ikuai系统中配置轩辕镜像加速
在绿联NAS系统中配置轩辕镜像加速
在威联通NAS系统中配置轩辕镜像加速
在 Podman 中配置轩辕镜像加速,支持多系统
配置轩辕镜像加速9大主流镜像仓库,包含详细配置步骤
无需登录即可使用轩辕镜像加速服务,更加便捷高效
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429