Docker部署 SonarQube, PHPStorm使用SonarLint插件进行代码检查

docker-compose 部署 SonarQube Server

docker-compose.yml

version: "3"

services:
  sonarqube:
    image: sonarqube:lts-community
    depends_on:
      - db
    environment:
      SONAR_JDBC_URL: jdbc:postgresql://db:5432/sonar
      SONAR_JDBC_USERNAME: sonar
      SONAR_JDBC_PASSWORD: sonar
      SONAR_ES_BOOTSTRAP_CHECKS_DISABLE: true
    volumes:
      - sonarqube_data:/opt/sonarqube/data
      - sonarqube_extensions:/opt/sonarqube/extensions
      - sonarqube_logs:/opt/sonarqube/logs
    ports:
      - "9000:9000"
  db:
    image: postgres:12
    environment:
      POSTGRES_USER: sonar
      POSTGRES_PASSWORD: sonar
    volumes:
      - postgresql:/var/lib/postgresql
      - postgresql_data:/var/lib/postgresql/data

volumes:
  sonarqube_data:
  sonarqube_extensions:
  sonarqube_logs:
  postgresql:
  postgresql_data:

启动:

docker-compose up -d

创建项目

访问http://localhost:9000,用户名admin,密码admin登录管理后台。

创建项目:

创建项目

选择Locally用本地项目测试

创建项目

点击Generate

创建项目

点击Continue

创建项目

选择项目类型

创建项目

copy 命令 sonar-scanner.bat -D"sonar.projectKey=test" -D"sonar.sources=." -D"sonar.host.url=http://localhost:9000" -D"sonar.login=xxx"

根据提示下载 sonarscanner 到本地,windows下解压缩到任意目录,并将bin目录添加到PATH环境变量

切换到项目目录执行上一步中的命令:

sonar-scanner.bat -D"sonar.projectKey=test" -D"sonar.sources=." -D"sonar.host.url=http://localhost:9000" -D"sonar.login=xxx"

创建项目

执行完毕,后台自动跳转,这样就完成了第一次项目代码的提交检查

创建项目

也可以使用配置文件的方式来替换上述命令

在项目根目录中创建配置文件sonar-project.properties,内容如下:

# must be unique in a given SonarQube instance
sonar.projectKey=test

sonar.projectName=test
# Path is relative to the sonar-project.properties file. Defaults to .
sonar.sources=.

sonar.login=xxx

替换sonar.login为你的token,然后执行,

sonar-scanner.bat -D"project.settings=./sonar-project.properties"

SonarLint 配置

  1. 安装SonarLint插件

SonarLint

点击Add

SonarLint

选择本地部署的SonarQube服务

SonarLint

填写test项目的token,即sonar.login的值

SonarLint

SonarLint

SonarLint

绑定项目

SonarLint

SonarLint

修改代码会自动提示代码缺陷

SonarLint


Last modified on 2022-10-20

Comments Disabled.