当前位置: 首页 > news >正文

服务器上使用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-communitydocker run -itd --name sonarqube:7.8-community -p 9000:9000 sonarqube:7.8-community

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

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=. 	#扫描哪个项目的源码

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 网站验证:确保网络安全与信任的重要步骤
  • C2W3.Assignment.Language Models: Auto-Complete.Part1
  • 一个简单好用安全的开源交互审计系统,支持SSH,Telnet,Kubernetes协议(带私活)
  • 智慧隧道可视化:安全与效率的智能保障
  • SpringMVC实现文件上传
  • stm32 io输入中断
  • 系统架构设计师教程 第4章 信息安全技术基础知识-4.1 信息安全基础知识-解读
  • 华为云.云日志服务LTS及其基本使用
  • linux、windows、macos清空本地DNS缓存
  • 基于全阶观测器的三自由度运动系统状态反馈控制simulink建模与仿真
  • 45、PHP 实现滑动窗口的最大值
  • 物联网专业创新人才培养体系的探索与实践
  • 1、Flink 的 Table API SQL API 概述
  • Java之 jvm
  • 量化机器人能否提高市场预测精度?
  • @angular/forms 源码解析之双向绑定
  • 【跃迁之路】【519天】程序员高效学习方法论探索系列(实验阶段276-2018.07.09)...
  • 【跃迁之路】【641天】程序员高效学习方法论探索系列(实验阶段398-2018.11.14)...
  • ➹使用webpack配置多页面应用(MPA)
  • E-HPC支持多队列管理和自动伸缩
  • electron原来这么简单----打包你的react、VUE桌面应用程序
  • ES6系列(二)变量的解构赋值
  • Linux后台研发超实用命令总结
  • SpringCloud集成分布式事务LCN (一)
  • Webpack入门之遇到的那些坑,系列示例Demo
  • 彻底搞懂浏览器Event-loop
  • 关于字符编码你应该知道的事情
  • 如何合理的规划jvm性能调优
  • 如何解决微信端直接跳WAP端
  • 深入体验bash on windows,在windows上搭建原生的linux开发环境,酷!
  • 吐槽Javascript系列二:数组中的splice和slice方法
  • 微信支付JSAPI,实测!终极方案
  • 用Python写一份独特的元宵节祝福
  • 鱼骨图 - 如何绘制?
  • 1.Ext JS 建立web开发工程
  • ​DB-Engines 12月数据库排名: PostgreSQL有望获得「2020年度数据库」荣誉?
  • ​渐进式Web应用PWA的未来
  • ​十个常见的 Python 脚本 (详细介绍 + 代码举例)
  • ​一、什么是射频识别?二、射频识别系统组成及工作原理三、射频识别系统分类四、RFID与物联网​
  • #includecmath
  • $nextTick的使用场景介绍
  • (2024)docker-compose实战 (9)部署多项目环境(LAMP+react+vue+redis+mysql+nginx)
  • (51单片机)第五章-A/D和D/A工作原理-A/D
  • (C11) 泛型表达式
  • (二)Pytorch快速搭建神经网络模型实现气温预测回归(代码+详细注解)
  • (二十九)STL map容器(映射)与STL pair容器(值对)
  • (非本人原创)史记·柴静列传(r4笔记第65天)
  • (剑指Offer)面试题34:丑数
  • (七)Knockout 创建自定义绑定
  • (已更新)关于Visual Studio 2019安装时VS installer无法下载文件,进度条为0,显示网络有问题的解决办法
  • .bat批处理(三):变量声明、设置、拼接、截取
  • .net FrameWork简介,数组,枚举
  • .net 按比例显示图片的缩略图
  • .NET 依赖注入和配置系统
  • .net与java建立WebService再互相调用