本文介绍以docker容器方式启动postgres和sonarqube。
前提条件: linux系统已具备docker环境,安装jenkins,jenkins已配置好git,jdk,nodejs等。 关闭防火墙(或放行5432、9000端口)
先在jenkins安装SonarQube Scanner插件
登录jenkins,系统管理,插件管理,搜索SonarQube Scanner,安装SonarQube Scanner或者SonarQube Scanner for Jenkins
1.安装Sonar
演示将postgres和sonarqube安装在10.144.118.57上,登录57机器执行以下步骤。
1.1.下载镜像
docker pull postgres:11.1
docker pull sonarqube:7.4-community
如下图:
1.2.运行容器
启动postgres
docker run -di --restart=always --name postgres -p 5432:5432 -e POSTGRES_USER=sonar -e POSTGRES_PASSWORD=123456 postgres:11.1
启动postgres
docker run -di --restart=always --name sonarqube -p 9000:9000 --link postgres -e SONARQUBE_JDBC_URL=jdbc:postgresql://postgres:5432/sonar -e SONARQUBE_JDBC_USERNAME=sonar -e SONARQUBE_JDBC_PASSWORD=123456 sonarqube:7.4-community
映射SonarQube存储(如果需要) -v sonarqube_conf:/opt/sonarqube/conf -v sonarqube_extensions:/opt/sonarqube/extensions -v sonarqube_logs:/opt/sonarqube/logs -v sonarqube_data:/opt/sonarqube/data
1.3.查看容器运行状态
docker ps -a
这里由于patainer已经占用9000端口,临时将9091端口映射到9000。
1.4.登录sonarqube获取Token
浏览器访问 http://10.144.118.57:9091 ,初始使用 admin/admin 登录。
初始进来没有这两个项目,这是分析代码后效果图。
点击用户头像,选择My Account,输入token名称(名称可随意),点击Generate。
生成token,并记录,后面jenkin集成Sonarqube Servers要用!
2.jenkins中配置Sonar
2.1.配置全局凭据
登录jenkins
如果手动添加API Token为关闭状态,需要先打开,系统管理->全局安全配置->API Token,勾选【允许用户手动创建一个遗留的 API token】,保存。
点击系统管理,点击Manager Credentials
点击全局
添加凭据
类型:Secret text 范围:全局 Secret:sonarqube中生成的token ID:自定义 描述:自定义
点击确定。
2.2.添加Sonarqube Servers
点击系统管理,系统配置
在SonarQube servers下,勾选Environment variables,点击Add SonarQube
Name:自定义 Server URL:http://10.144.118.57:9091(上面安装的SonarQube地址) Server authentication token:选择2.1中配置的全局凭据
点击保存。
3.新建任务,测试sonar分析java后端代码
3.1.新建任务
登录jenkins,新建任务,输入任务名称,选择构建一个自由风格的软件项目,点击OK。
3.2.配置
源码管理
勾选Git(这里假设jenkins已经集成git,如未集成git,这里没有Git选项,请先集成git后再操作),输入项目git地址,选择用户(这里的用户也是凭据,参照2.1配置全局凭据操作,类型选择Username with password),指定分支,源码库浏览器默认自动;
构建
点击增加构建步骤,选择Execute SonarQube Scanner
选择jdk, 选择SonarQube Scanner(2.2中添加的), 填写Analysis properties,内容如下:
>sonar.projectKey=ib-gisedit
>sonar.projectName=ib-gisedit
>sonar.language=java
>sonar.sourceEncoding=UTF-8
>sonar.sources=$WORKSPACE/ib-gisedit/src
>sonar.java.binaries=$WORKSPACE
点击保存
3.3.测试代码分析
点击立即构建,即可构建项目执行代码分析,登录sonarqube界面,点击Projects即可看到分析结果,分析内容含义请自行查阅资料。
4.新建任务,测试sonar分析前端代码
测试sonar分析前端代码需要jenkins配置nodejs
这里以前端项目nari-globe为例,前端新建任务的步骤和测试分析java后端代码的步骤基本一致,区别在构建填写Analysis properties时
Analysis properties内容如下:
sonar.projectKey=nari-globe
sonar.projectName=nari-globe
sonar.sourceEncoding=UTF-8
sonar.exclusions=**/*.png,**/*.svg,**/*.md,**/*.eot,**/*.ttf,**/*.jpg,**/*.md,**/*.json
sonar.sources=$WORKSPACE
选择前端项目,执行3.3.测试代码分析,分析前端代码,登录sonarqube界面查看分析结果。
完结!