安装SonarQube

发布时间 2023-05-21 16:02:22作者: shigp1

一、简介

SonarQube是一个自我管理的自动代码审查工具,可以系统地帮助您提供干净的代码。作为我们Sonar解决方案的核心元素,SonarQube集成到您现有的工作流程中,并检测代码中的问题,以帮助您对项目进行持续的代码检查。该工具分析了30多种不同的编程语言,并集成到您的CI管道和DevOps平台中,以确保您的代码符合高质量标准。
 
Sonar的发展

Sonar解决方案在开发过程的每个阶段都进行检查:
SonarLint在编写代码时在IDE中提供即时反馈,以便在提交之前发现并解决问题。
SonarQube的PR分析适合您的CI/CD工作流程,并通过SonarQebe的公关分析和质量门的使用。
质量门禁有问题的代码不被发布到生产环境中,这是帮助您融入“随代码清洁”方法的关键工具。
Clean as You Code 方法可以帮助您专注于提交新的、干净的代码用于生产,因为您知道随着时间的推移,您的现有代码会得到改进。

二、安装SonarQube

选用腾讯云主机安装SonarQube。SonarQube要求最少2G的内存,操作系统最少1G的空闲内存。因此最少4G内存。镜像选择Centos。SonarQube依赖内置的ES。ES对Linux的参数有要求,登录云主机后,运行

sudo vim /etc/sysctl.conf

添加参数

vm.max_map_count = 262144

重新加载/etc/sysctl.conf配置

sysctl -p

 

腾讯云主机配置访问规则:



配置要开放的端口和ip地址。
 

登录云主机后,安装Docker,用Docker安装SonarQube。卸载旧版Docker:

sudo yum remove docker \
              docker-client \
              docker-client-latest \
              docker-common \
              docker-latest \
              docker-latest-logrotate \
              docker-logrotate \
              docker-engine

安装依赖:

sudo yum install -y yum-utils

配置镜像:

sudo yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

更新索引缓存:

yum makecache fast

安装:

sudo yum install docker-ce docker-ce-cli containerd.io

启动Docker:

sudo systemctl start docker

查看Docker版本:

docker version

安装docker-compose:

curl -SL https://github.com/docker/compose/releases/download/v2.12.2/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose

添加权限:

chmod +x /usr/local/bin/docker-compose

安装SonarQube的docker-compose文件sonar-compose.yml:

version: '3'
services:
  postgres:
    image: postgres:latest
    container_name: postgres
    restart: always
    privileged: true
    networks:
      - sonar
    volumes:
      - /data/sonar/postgres/postgresql:/var/lib/postgresql
      - /data/sonar/postgres/data:/var/lib/postgresql/data
      - /etc/localtime:/etc/localtime:ro
    ports:
      - "5432:5432"
    environment:
      POSTGRES_USER: sonar 
      POSTGRES_PASSWORD: sonar 
      POSTGRES_DB: sonar 
      TZ: Asia/Shanghai 

  sonar:
    image: sonarqube:8.9.10-community
    container_name: sonar
    restart: always
    privileged: true
    networks:
      - sonar
    volumes:
      - /data/sonar/sonarqube/logs:/opt/sonarqube/logs
      - /data/sonar/sonarqube/conf:/opt/sonarqube/conf
      - /data/sonar/sonarqube/data:/opt/sonarqube/data
      - /data/sonar/sonarqube/extensions:/opt/sonarqube/extensions
    ports:
      - "8000:9000"
    links:
      - "postgres:postgres"  
    environment:
      ALLOW_EMPTY_PASSWORD: "yes"
      SONARQUBE_JDBC_USERNAME: sonar
      SONARQUBE_JDBC_PASSWORD: sonar
      SONARQUBE_JDBC_URL: "jdbc:postgresql://postgres:5432/sonar" 

networks:
  sonar:
    driver: bridge

sonarqube8.X版本依赖的数据库是Postgresql。需要安装Postgresql。

运行

sudo docker-compose -f sonar-compose.yml up -d

启动Docker的SonarQube镜像。

运行sudo docker ps查看启动的容器。在运行sudo docker logs 容器id查看对用容器的日志。启动成功后访问外网ip:8000,,看到

默认用户名和密码是admin/admin。登陆后要修改密码:


修改密码后:

 
 
 
 
 

安装Docker参考:https://blog.csdn.net/PyongSen/article/details/123053374
安装docker-compose参考:https://blog.csdn.net/u010833154/article/details/127687207
docker-compose部署sonarqube参考:https://blog.csdn.net/litaimin/article/details/128092140