irpas技术客

SonarQube的安装、配置与使用_私念_sonarqube安装配置

网络 1534

参考: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.按照下图的点击顺序,进入插件安装页面

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


1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,会注明原创字样,如未注明都非原创,如有侵权请联系删除!;3.作者投稿可能会经我们编辑修改或补充;4.本站不提供任何储存功能只提供收集或者投稿人的网盘链接。

标签: #sonarqube安装配置 #sonarqube #目前最新版为 #80最新稳定版本为 #79由于性能原因sonar # #79