编辑
2025-09-18
Devops
00

目录

一、Sonar Qube介绍
二、安装Sonar Qube

一、Sonar Qube介绍

Sonar Qube是一个开源的代码分析平台,支持Java、Python、PHP、JavaScript、CSS等25种以上的语言,可以检测出重复代码、代码漏洞、代码规范和安全性漏洞的问题。

Sonar Qube可以与多种软件整合进行代码扫描,比如Maven,Gradle,Git,Jenkins等,并且会将代码检测结果推送回Sonar Qube并且在系统提供的UI界面上显示出来

二、安装Sonar Qube

采用docker-compose的方式安装

yml
version: "3.1" # 声明使用的Docker Compose语法版本 services: # 定义容器服务列表 db: # 服务1:PostgreSQL数据库容器 image: postgres # 使用官方PostgreSQL镜像 container_name: db # 显式指定容器名称(而非自动生成) ports: - 5432:5432 # 将容器内5432端口映射到宿主机同端口 networks: - sonarnet # 连接到自定义网络 environment: # 设置环境变量(数据库配置) POSTGRES_USER: sonar # 创建默认用户名为sonar POSTGRES_PASSWORD: sonar # 设置用户密码为sonar sonarqube: # 服务2:SonarQube代码质量分析平台 image: sonarqube:8.9.6-community # 指定SonarQube社区版8.9.3镜像 container_name: sonarqube # 显式命名容器 depends_on: # 声明依赖关系(先启动db服务) - db ports: - "9000:9000" # 暴露Web管理界面端口 networks: - sonarnet # 使用同一自定义网络 environment: # SonarQube连接数据库的配置 SONAR_JDBC_URL: jdbc:postgresql://db:5432/sonar # 通过服务名db访问PostgreSQL SONAR_JDBC_USERNAME: sonar # 使用db服务中定义的用户名 SONAR_JDBC_PASSWORD: sonar # 使用db服务中定义的密码 networks: # 自定义网络配置 sonarnet: # 网络名称 driver: bridge # 使用桥接模式(默认网络驱动)
js
‌双容器架构‌ PostgreSQL容器作为SonarQube的专用数据库 SonarQube容器提供代码扫描的Web服务 ‌网络隔离‌ 通过sonarnet自定义网络实现: 容器间可通过服务名直接通信(如jdbc:postgresql://db:5432) 与外部网络隔离增强安全性 ‌关键配置‌ 数据库认证信息通过环境变量动态注入 端口映射使宿主机可访问: 9000SonarQube管理界面 5432:可选暴露数据库端口(生产环境建议移除) ‌版本控制‌ 明确指定SonarQube版本(8.9.6社区版) 使用稳定的PostgreSQL官方镜像 启动命令建议:docker-compose up -d 访问地址:http://localhost:9000(首次启动需等待约2分钟初始化)

本文作者:松轩(^U^)

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!

Document