Docker Compose 是 Docker 官方提供的用于定义和运行多容器 Docker 应用的工具。它使我们可以通过一个 YAML 文件来配置应用的服务、网络和存储等,并可以用一个命令来启动、停止和重启整个应用。

SonarQube 是一个开源的代码质量管理平台,它可以帮助我们分析代码的质量、检测潜在的代码问题,并提供相应的修复建议。SonarQube 支持多种编程语言,包括 Java、C#、Python 等,并提供了丰富的插件来扩展功能。

在本文中,我将向大家介绍如何使用 Docker Compose 来搭建一个 SonarQube 服务,并展示如何使用 SonarQube 来分析代码质量。

准备工作

为了使用 Docker Compose 搭建 SonarQube,我们需要先安装 Docker 和 Docker Compose。在安装完成后,我们可以通过运行以下命令来验证安装是否成功:

docker --version
docker-compose --version

如果以上命令能够正常输出版本信息,则说明 Docker 和 Docker Compose 安装成功。

编写 Docker Compose 文件

接下来,我们需要编写一个 Docker Compose 文件,来描述我们要搭建的 SonarQube 服务。在项目的根目录下创建一个名为 docker-compose.yml 的文件,并将以下内容复制到文件中:

version: '3'
services:
  sonarqube:
    image: sonarqube:latest
    ports:
      - "9000:9000"
    networks:
      - sonarqube_network
    environment:
      - SONARQUBE_JDBC_URL=jdbc:postgresql://db:5432/sonar
      - SONARQUBE_JDBC_USERNAME=sonar
      - SONARQUBE_JDBC_PASSWORD=sonar
    volumes:
      - sonarqube_data:/opt/sonarqube/data
      - sonarqube_extensions:/opt/sonarqube/extensions
      - sonarqube_logs:/opt/sonarqube/logs
      - sonarqube_temp:/opt/sonarqube/temp

  db:
    image: postgres:latest
    networks:
      - sonarqube_network
    environment:
      - POSTGRES_USER=sonar
      - POSTGRES_PASSWORD=sonar
    volumes:
      - postgres_data:/var/lib/postgresql/data

networks:
  sonarqube_network:

volumes:
  sonarqube_data:
  sonarqube_extensions:
  sonarqube_logs:
  sonarqube_temp:
  postgres_data:

上述 Docker Compose 文件定义了两个服务:SonarQube 和数据库。SonarQube 服务使用了 SonarQube 官方提供的镜像,并将其映射到本机的 9000 端口。数据库服务使用了 PostgreSQL 官方提供的镜像,并将其映射到本机的 5432 端口。两个服务通过一个名为 sonarqube_network 的网络进行通信。

此外,我们还为 SonarQube 服务定义了一些环境变量,用于设置 SonarQube 连接数据库的 URL、用户名和密码,并使用了一些存储卷来持久化 SonarQube 的数据。

启动 SonarQube 服务

完成 Docker Compose 文件的编写后,我们可以使用以下命令来启动 SonarQube 服务:

docker-compose up -d

此命令将会自动下载所需的镜像,并启动 SonarQube 和数据库服务。

访问 SonarQube

当容器启动完成后,我们可以通过浏览器访问 SonarQube 的 Web 界面。在浏览器中输入 http://localhost:9000,将会看到 SonarQube 的欢迎界面。

![](

点击 "Log in" 按钮,进入登录界面。默认情况下,SonarQube 使用管理员身份进行登录,用户名为 admin,密码为 admin

成功登录后,我们可以创建一个新的项目,并将代码上传到 SonarQube 进行分析。在 SonarQube 的 Web 界面中,点击页面左上角的加号图标,选择 "Create new project"。

![](