服务器上使用Docker部署sonarQube,并集成到Jenkins实现自动化。

目标是要在目标服务器上使用docker工具部署好sonar环境,然后再集成到Jenkins中实现自动化的代码审查工作。

Docker

首先Dokcer的源大部分现在都用不了,于是我上网查询,终于找到了一个可用的镜像。

编辑/etc/docker/daemon.json文件,在里面添加下面的内容:
 

{ 
  "registry-mirrors" : 
    [ 
      "https://docker.m.daocloud.io", 
      "https://noohub.ru", 
      "https://huecker.io",
      "https://dockerhub.timeweb.cloud" 
    ] 
}

然后重启一下docker服务就可以使用正常使用docker了。

sonar

使用docker部署sonar环境特别简单,只需要两行代码,但是在没有考虑好sonar版本和java版本的对应情况下,我第一遍部署的环境无法使用,因为目前最新的sonar版本要求java17以上,而我的jenkins里面配置的两个java,一个是1.8,一个是11版本,所以我需要降低sonar版本,读者可以根据自己需要去进行选择下载对应版本的sonar或者java。同时sonar7.9以上就不再支持mysql了。

docker pull sonarqube:7.8-community

docker run -itd --name sonarqube:7.8-community -p 9000:9000 sonarqube:7.8-community

执行上面两行代码。即可成功安装sonarqube,在浏览器中输入ip加端口9000即可进入。默认初始用户名密码是admin和admin。

后来又发现sonarqube:7.8-community在使用的过程中太老了,于是我又升级了一下jenkins中的java版本,额外在system选项中配置了一个jdk17版本的java,使我能够使用最新版本的sonarqube了。

下面是我的修改过程。

#进入jenkins部署的所在的服务器,查看jenkins容器的id
docker ps

#使用上一个命令查找到的容器id,进入容器内
docker exec -it mycontainer-id /bin/bash

#下载好wget工具用来下载jdk17的压缩包,
#下载好tar工具用来解压
apt-get install wget tar

#创建一个空的文件夹用来存储jdk-17
mkdir /opt/jdk-17

#进入该文件夹并使用wget下载jdk17的安装包
cd /etc/jdk-17
wget https://download.oracle.com/java/17/latest/jdk-17_linux-x64_bin.tar.gz -O /tmp/jdk-17.tar.gz

#使用tar对下载的压缩包解压操作
tar -xzf /tmp/jdk-17.tar.gz -C /opt/jdk-17 --strip-components=1

这之后进入jenkins,进入tools中

在jdk一栏中,将新配置好的jdk17填写上去。

Jenkins集成

1.下载插件

首先要在Jenkins的插件管理中下载使用sonar时对应的插件sonarqube scanner。

2.配置服务端

然后需要在系统配置中配置好sonarqube的服务端,填写好目标路径,就是IP地址:9000端口的那个路径。

在这里,还需要配置一下凭证,打开sonar网页端.

点击右上角的my account

在security一栏中,创建一个token

然后把创建出来的token复制一下,粘贴到Jenkins中下面的创建凭证中。注意,类型选择secret text。

3.最后,在全局工具管理中,再配置一下sonarqube scanner

这样就可以在工程中使用sonar了。

4.创建一个jenkins项目,在增添构建步骤一栏选择下面的。

结合下面的这段代码即可。

sonar.projectName=${JOB_NAME} 	#项目在sonarqube上的显示名称
sonar.projectKey=${JOB_NAME} 	#项目的唯一标识,不能重复
sonar.sources=. 	#扫描哪个项目的源码

  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值