首页 > 其他分享 >SonarQube的安装、配置与使用

SonarQube的安装、配置与使用

时间:2022-12-01 23:02:02浏览次数:65  
标签:http sonarqube -- SonarQube 配置 data traefik sonar 安装


参考:SonarQube的安装、配置与使用

简介

sonarqube 是一个代码质量管理平台,可通过安装不同的插件集成测试工具、代码质量分析工具、持续集成等多种功能。

sonarqube 目前最新版为 8.0,最新稳定版本为 7.9,由于性能原因,sonar 从 7.9 之后就不再 支持 MySQL,替代方案为 PostgreSQL。

这里选择 ​​postgres:12​​​ 和 ​​sonarqube:7.9-community​​ 两个 docker 镜像,使用 docker-compose 配置并启动

一、安装篇

编写 docker-compose.yaml 文件


$ mkdir sonar
$ cat << 'EOF' | tee sonar/docker-compose.yaml
version: "3"

services:
postgres:
image: postgres:12
container_name: postgres
restart: always
networks:
- sonar
volumes:
- "/etc/localtime:/etc/localtime"
# 持久化存储postgresql数据
- "/data/postgresql:/var/lib/postgresql/data"
environment:
# 创建sonarqube所需数据库并授权
- "POSTGRES_USER=sonar"
- "POSTGRES_PASSWORD=sonar"
- "POSTGRES_DB=sonar"

sonar:
image: sonarqube:7.9-community
container_name: sonar
restart: always
depends_on:
- postgres
networks:
- sonar
volumes:
- "/etc/localtime:/etc/localtime"
# 持久化存储sonarqube插件,日志,数据,配置
- "/data/sonarqube/extensions:/opt/sonarqube/extensions"
- "/data/sonarqube/logs:/opt/sonarqube/logs"
- "/data/sonarqube/data:/opt/sonarqube/data"
- "/data/sonarqube/conf:/opt/sonarqube/conf"
environment:
# sonarqube连接postgresql配置
- "SONARQUBE_JDBC_USERNAME=sonar"
- "SONARQUBE_JDBC_PASSWORD=sonar"
- "SONARQUBE_JDBC_URL=jdbc:postgresql://postgres:5432/sonar"
labels:
- "traefik.enable=true"
# HTTP访问入口,HTTP自动跳转HTTPS
- "traefik.http.routers.sonar.entrypoints=web"
- "traefik.http.routers.sonar.rule=Host(`sonar.YOU_DOMAIN`)"
- "traefik.http.routers.sonar.middlewares=redirect-to-https"
- "traefik.http.middlewares.redirect-to-https.redirectscheme.scheme=https"
# HTTPS访问入口
- "traefik.http.routers.sonar-secure.entrypoints=websecure"
- "traefik.http.routers.sonar-secure.rule=Host(`sonar.YOU_DOMAIN`)"
# 开启TLS
- "traefik.http.routers.sonar-secure.tls=true"
- "traefik.http.routers.sonar-secure.tls.certresolver=default"
# 指定SonarQube的端口,多端口容器需要指定
- "traefik.http.services.sonar-secure.loadbalancer.server.port=9000"

traefik:
image: traefik:2.1
container_name: traefik
restart: always
command:
# 开启api/dashboard
- "--api.dashboard=true"
# 设置provider为docker
- "--providers.docker=true"
- "--providers.docker.exposedbydefault=false"
# 设置http和https入口点
- "--entryPoints.web.address=:80"
- "--entryPoints.websecure.address=:443"
# ACME验证方式,这里选择TLS验证
- "--certificatesresolvers.default.acme.tlschallenge=true"
# 申请证书的邮箱
- "--certificatesResolvers.default.acme.email=YOU_EMAIL"
# 保存ACME证书的位置
- "--certificatesResolvers.default.acme.storage=/letsencrypt/acme.json"
networks:
- sonar
ports:
- "80:80"
- "443:443"
volumes:
- "/etc/localtime:/etc/localtime"
- "./letsencrypt:/letsencrypt"
- "/var/run/docker.sock:/var/run/docker.sock"

networks:
sonar:
driver: bridge
EOF


把上面的 YOU_DOMAIN 和 YOU_EMAIL 换成实际的域名和邮箱

二、配置篇

1. 创建持久化 postgresql 和 sonarqube 数据目录


mkdir -pv /data/{postgresql,sonarqube/{conf,data,extensions,logs}}

postgresql 和 sonarqube 镜像都是以 UID 999 的用户启动运行的,需要将持久化数据目录权限更改



chown -R 999.root /data/{postgresql,sonarqube}

2. sonarqube 里集成了 elasticsearch,由于 elasticsearch 占用内存较高,官方要求 ​​vm.max_map_count​​ 需要配置到最小 262144



$ echo "vm.max_map_count = 262144" > /etc/sysctl.d/sonarqube.conf 
$ sysctl -p /etc/sysctl.d/sonarqube.conf

3. 启动 SonarQube


$ cd sonar  $ docker-compose up -d


4.等待一段时间后,在浏览器里输入 sonar.YOU_DOMAIN,即可看到 sonarqube 的 web 页面

默认登录账号密码为 admin/admin

5.按照下图的点击顺序,进入插件安装页面

SonarQube的安装、配置与使用_postgresql

6.搜索chinese Pack,安装中文语言包

7.安装成功后,重启sonarqube服务,再次访问​​http://localhost:9000/,即可看到中文界面​​

8.右上角创建新项目 test  ,项目标识是项目的唯一标识,后面sonar-scanner配置文件会用到

9. 生成令牌,后面sonar-scanner配置文件会用到

三、使用篇

安装 Sonar Scanner

官方教程:​​SonarScanner | SonarQube Docs​

可以下载windows版本或者linux版本的

比如我自己下载的windows版本:

​https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-4.6.2.2472-windows.zip​

配置sonar-scanner

修改配置文件:conf/sonar-project.properties


# must be unique in a given SonarQube instance  创建项目时设置的项目标识

sonar.projectKey=test

# defaults to project key

#sonar.projectName=My project

# defaults to 'not provided'

#sonar.projectVersion=1.0

# sources是源文件所在的目录 Defaults to .

#sonar.sources=.

#----- Default SonarQube server
#sonar.host.url=http://localhost:9000
sonar.host.url=https://sonar.phpmianshi.com

#----- Default source code encoding

sonar.sourceEncoding=UTF-8


配置完成后验证是否配置成功


sonar-scanner -h

usage: sonar-scanner [options]

Options:
-D,--define <arg> Define property
-h,--help Display help information
-v,--version Display version information
-X,--debug Produce execution debug output


在cmd进入项目所在的根目录,输入命令


sonar-scanner -Dsonar.login=myAuthenticationToken


令牌的生成参考:配置篇=>9. 生成令牌,后面sonar-scanner配置文件会用到

也可以参考官网:Generating and Using Tokens | SonarQube Docs

打开https://sonar.phpmianshi.com,我们会看到主页出现了分析项目的概要图

预知更多使用,请登录官网自行学习。

Code Quality and Code Security | SonarQube

http://docs.sonarqube.org/display/SONAR/Analyzing+with+SonarQube+Scanner


标签:http,sonarqube,--,SonarQube,配置,data,traefik,sonar,安装
From: https://blog.51cto.com/u_6353447/5904146

相关文章

  • HALO博客配置华为云OSS上传附件
    大家好,我是满心前言之前使用的服务器本地存储,用了半年左右发现,存储量较大,而且访问速度也很慢,就考虑使用OBS存储方式,由于我使用的是华为云服务器,所以这里也选用华为的OBS,其实......
  • Unreal Engine 4.27.2在Android平台开发的相关配置
    UnrealEngine4.27.2在Android平台开发的相关配置UE的官方文档上有Android开发的详细介绍,本文记录一下我最近打包Android项目的一些问题和解决办法。另外本文就是为4.27......
  • centos 7.9安装java和java环境配置(超实用)
    一、安装包准备安装包,可以通过下面地址进行版本选择安装https://www.oracle.com/java/technologies/downloads/#java8二、正式开始安装本次分享的安装方法直接通过编辑......
  • webpack的基本配置
    webpack的基本配置:1:mode:编译模式是一个字符串取值为development或者为production.2:entry:入口指定入口文件。默认的入口文件是src目录下面index.js但是我们也可以自己......
  • 说一说webpack的配置文件
    可能有一些友友会奇怪为什么在写webpack的配置文件的时候,我们只能用commonJS导出。原因:在打包的时候需要运行webpack的配置文件里面的代码,而webpack在打包运行的环境在nod......
  • Android studio 安装过程中SDK的环境配置问题
    SDK的环境配置问题在之前的某一篇中,我也提到过在Ecplise里面的SDK的环境配置,二者确实不太一样!一、系统环境变量新增一个变量名为:ANDROID_HOME变量值为:浏览到下载SDK的......
  • Android studio软件的安装过程详解
    步骤详解进入官网,下载相关软件官网地址:https://developer.android.google.cn/studio/点击该页面里面的这个按钮,就能够很轻松地完成下载操作:弹出弹窗,继续下一个操作打......
  • Ubuntu20.04安装GPU显卡驱动
    一、命令行安装sudoapt-getinstallnvidia-driver-515有些显卡只支持455安装完成记得重启一下,然后验证一下:nvidia-smi若显示下图则说明安装成功~ 二、安装CU......
  • mysql下载及安装
    数据库是数据存储的仓库;数据库管理系统是操纵和管理数据库的大型软件;SQL是操作关系型数据库的编程语言,是一套标准;  卸载mysql1.此电脑——卸载或更改程序——相关......
  • excel读写-ddt,config配置
    一、ddt数据驱动1、什么是ddt?:(datadrivertest)数据驱动测试(就是把用例写excel,用代码调用)2、安装ddt:pipinstallddt3、python中与excel相关模块  4、读取excel ......