您的工作流程已经拥有所有正确的部分 - 它只需要一点涡轮增压。SonarLint 在您的 IDE 中捕获问题,同时 SonarQube分析拉取请求和分支。这种组合形成了一个持续的代码质量分析解决方案,可以让您的代码库保持干净。

docker 部署方式

  1. 拉取镜像

    docker pull sonarqube:9.9.6-community
    
  2. 创建工作目录

    mkdir -p /volume2/docker/sonarqube
    
  3. 运行一个test容器

    docker run -d --name sonartest sonarqube:9.9.6-community
    
  4. 将容器内重要文件复制到宿主机

    docker cp sonartest:/opt/sonarqube/conf /volume2/docker/sonarqube
    docker cp sonartest:/opt/sonarqube/data /volume2/docker/sonarqube
    docker cp sonartest:/opt/sonarqube/logs /volume2/docker/sonarqube
    docker cp sonartest:/opt/sonarqube/extensions /volume2/docker/sonarqube
    
  5. 然后删除此容器

    docker stop sonartest
    docker rm sonartest
    
  6. 修改文件夹权限

    chmod -R 777 /volume2/docker/sonarqube
    
  7. 创建容器并运行

    sonarQube + mysql 7.9以上版本不支持MySQL

    docker run -d --name sonar -p 3400:9000 \
     -e ALLOW_EMPTY_PASSWORD=yes \
     -e SONARQUBE_DATABASE_USER=sonar \
     -e SONARQUBE_DATABASE_NAME=sonar \
     -e SONARQUBE_DATABASE_PASSWORD=sonar \
     -e SONARQUBE_JDBC_URL="jdbc:mysql://172.17.0.1:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false" \
     --restart always \
     --privileged=true \
     -v /volume2/docker/sonarqube/logs:/opt/sonarqube/logs \
     -v /volume2/docker/sonarqube/conf:/opt/sonarqube/conf \
     -v /volume2/docker/sonarqube/data:/opt/sonarqube/data \
     -v /volume2/docker/sonarqube/extensions:/opt/sonarqube/extensions\
     sonarqube:9.9.6-community
    

    sonarQube + postgresql 7.9以上版本使用

    docker run -d --name sonar -p 3400:9000 \
     -e ALLOW_EMPTY_PASSWORD=yes \
     -e SONARQUBE_DATABASE_USER=sonar \
     -e SONARQUBE_DATABASE_NAME=sonar \
     -e SONARQUBE_DATABASE_PASSWORD=sonar \
     -e SONARQUBE_JDBC_URL="jdbc:postgresql://172.17.0.1:5433/sonar" \
     --privileged=true \
     --restart always \
     -v /volume2/docker/sonarqube/logs:/opt/sonarqube/logs \
     -v /volume2/docker/sonarqube/conf:/opt/sonarqube/conf \
     -v /volume2/docker/sonarqube/data:/opt/sonarqube/data \
     -v /volume2/docker/sonarqube/extensions:/opt/sonarqube/extensions\
     sonarqube:9.9.6-community
    
  8. docker容器命令

    docker start sonar
    docker restart sonar
    docker stop sonar
    docker rm sonar
    
  9. 修改 conf 目录下的 sonar.properties

    sonar.jdbc.username=sonar
    sonar.jdbc.password=sonar
    sonar.jdbc.url=jdbc:postgresql://172.17.0.1:5433/sonar?currentSchema=public