jenkins+sonar 实现代码检测
docker安装jenkins+sonar 实现代码检测
一、sonarqube简介
SonarQube 是一款用于代码质量管理的开源工具,它主要用于管理源代码的质量。通过插件形式,可以支持众多计算机语言。
比如 java, C#, go,C/C++, PL/SQL,Cobol,JavaScrip,Groovy等。sonar可以通过PMD,CheckStyle,Findbugs等等代码规则检测工具来检测你的代码,帮助你发现代码的漏洞,Bug,异味等信息。
二、安装postgresql数据库
#注意:sonarqube7.9版本以上不再支持MySQL数据库,这里我们使用postgresql
1、拉取postgresql、sonarqube、jenkins的镜像
[root@VM-0-15-centos ~]# docker pull postgres:latest
Trying to pull repository docker.io/library/postgres ...
latest: Pulling from docker.io/library/postgres
ae13dd578326: Pull complete
723e40c35aaf: Pull complete
bf97ae6a09b4: Pull complete
2c965b3c8cbd: Pull complete
c3cefa46a015: Pull complete
64a7315fc25c: Pull complete
b9846b279f7d: Pull complete
ed988fb8e7d9: Pull complete
ed4bb4fd8bb5: Pull complete
ead27f1733c8: Pull complete
7d493bacd383: Pull complete
0920535e8417: Pull complete
db76d5bdbf2c: Pull complete
Digest: sha256:99aa522df573a6f117317ab9627c1ba4717513090fd013b937c91a288933ee90
Status: Downloaded newer image for docker.io/postgres:latest[root@VM-0-15-centos ~]# docker pull sonarqube:latest
Trying to pull repository docker.io/library/sonarqube ...
latest: Pulling from docker.io/library/sonarqube
36ccefbf3d8a: Pull complete
afb294ac7ddc: Pull complete
7963d7b13fc9: Pull complete
Digest: sha256:90a68d1ac2c3ce072b54615d37f59644b988bb603fc7fb23e3d12914b854e41a
Status: Downloaded newer image for docker.io/sonarqube:latest[root@VM-0-15-centos ~]# docker pull jenkins/jenkins:latest
Trying to pull repository docker.io/jenkins/jenkins ...
latest: Pulling from docker.io/jenkins/jenkins
e4d61adff207: Pull complete
eacef06daf30: Pull complete
ca581b0141a3: Pull complete
d872c65909bb: Pull complete
bcce550e05a9: Pull complete
3461f061a833: Pull complete
3b6f8a58a68d: Pull complete
6d47f55855ba: Pull complete
baa80a92c8e4: Pull complete
39889d888af7: Pull complete
18b5e0e36b4c: Pull complete
a53e22d026ad: Pull complete
a281963da5b5: Pull complete
2366689c95a7: Pull complete
27cbe8a0f233: Pull complete
fffccee1c284: Pull complete
a6afec98241f: Pull complete
Digest: sha256:a5215b81a7f6e111ed6625b342521145e24c232891615be29ce3a251a631feac
Status: Downloaded newer image for docker.io/jenkins/jenkins:latest[root@VM-0-15-centos ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
docker.io/sonarqube latest f4599081097a 11 hours ago 520 MB
docker.io/postgres latest 5cd1494671e9 13 hours ago 376 MB
docker.io/jenkins/jenkins latest f7d565ddb272 2 days ago 460 MB
2、创建工作目录
[root@VM-0-15-centos ~]# mkdir -p /opt/apps/sonarqube/{extensions,logs,data}
[root@VM-0-15-centos ~]# mkdir -p /opt/apps/postgres/{postgresql,data}
[root@VM-0-15-centos ~]# mkdir -p /opt/apps/jenkins_mount/
3、启动容器
#启动postgresql镜像
docker run -d --name postgres -p 5432:5432 \
-v /opt/apps/postgres/postgresql:/var/lib/postgresql \
-v /opt/apps/postgres/data:/var/lib/postgresql/data \
-v /etc/localtime:/etc/localtime:ro \
-e POSTGRES_USER=sonar \
-e POSTGRES_PASSWORD=sonar \
-e POSTGRES_DB=sonar \
-e TZ=Asia/Shanghai \
--restart always \
postgres:latest#启动sonarqube镜像
docker run -d --name sonarqube -p 6004:9000 \
--link postgres \
-v /opt/apps/sonarqube/extensions:/opt/sonarqube/extensions \
-v /opt/apps/sonarqube/logs:/opt/sonarqube/logs \
-v /opt/apps/sonarqube/data:/opt/sonarqube/data \
-e SONARQUBE_JDBC_URL=jdbc:postgresql://postgres:5432/sonar \
-e SONARQUBE_JDBC_USERNAME=sonar \
-e SONARQUBE_JDBC_PASSWORD=sonar \
--restart always \
--privileged=true \
sonarqube:latest
#sonarqube启动需要修改内核参数
vim /etc/sysctl.conf
# 增加以下配置
vm.max_map_count=262144
fs.file-max=65536
# 使配置生效
sysctl -p# 启动jenkins镜像
docker run -d -p 10240:8080 -p 10241:50000 \
-v /var/jenkins_mount:/var/jenkins_home \
-v /etc/localtime:/etc/localtime \
-v /usr/local/jdk-11.0.14/:/usr/local/jdk-11.0.14/ \
--name myjenkins \
jenkins/jenkins
三、配置sonar
默认密码admin/admin
点击my account
按图操作,生成token
四、配置jenkins
#jenkin初始化过程略
1、系统管理-插件管理
安装sonar插件
2、系统管理-凭据管理
添加sonar凭据(在sonar上生成的token)
3、系统管理-系统配置
配置sonar
4、系统配置-全局工具配置
配置jdk(可使用自己配置的,也可以在线安装,在线安装需要oracle账号)
配置sonar,选择maven安装,安装最新版即可
五、配置流水线
1、新建流水线
2、选择jdk和配置代码地址
3、增加构建步骤,选择 Execute SonarQube Scanner
参数:
sonar.projectKey=自定义
sonar.projectName=自定义
sonar.projectVersion=1.0sonar.language=java
sonar.sourceEncoding=UTF-8sonar.sources=$WORKSPACE
sonar.java.binaries=$WORKSPACE
4、执行流水线
执行成功后可从工程界面跳转到sonar界面,查看代码检查结果
执行成功后可从工程界面跳转到sonar界面,查看代码检查结果
jenkins+sonar 实现代码检测相关推荐
- sonar做代码检测时如何忽略一些代码文件
1.管理员登录sonar 2.如图 一条规则配置一个,不要填写逗号或者分号分割的多个规则
- gitlab+jenkins+sonar做代码质量分析
- inno setup插件可选安装代码_代码检测工具(sonar docker方式安装)
sonarqube 是一个代码质量检测工具,内置很多有用的Java规范,使用sonar检测工具,能够帮助开发者写出干净和安全的代码,让初级开发者也能写出高水平代码 安装地址:https://docs. ...
- jenkins学习系列之PMD静态代码检测
一.jenkins集成PMD流程 实际生产中,上线的代码往往要经过检测,满足一些规则才行,这些规则可以是直接使用官方的规则,也可以是自己写的. 因为目前的工作和java有关,所以这里以java代码静态 ...
- maven+jenkins+sonar集成搭建
转载地址:http://blog.csdn.net/wzd_0116/article/details/24651333 集成质量管理平台搭建 第一章Sonar安装...2 1.1下载sonar.2 1 ...
- coverity代码检测工具介绍_兴业证券:静态代码检测最佳实践
一. 引言 谷歌发布的代码规范中指出,80% 的缺失是由 20% 的代码所引起的.规范的代码可以消除过于强烈的个人风格,有助于代码在项目间高效的流转:提升代码的正确性,降低低级问题产生的可能性:同时也 ...
- coverity代码检测工具介绍_微服务测试之静态代码扫描
静态代码扫描为整个发展组织增加价值.无论您在开发组织中发挥的作用如何,静态代码扫描解决方案都具有附加价值,拥有软件开发中所需要的尖端功能,最大限度地提高质量并管理软件产品中的风险. 背景 微服务架构模 ...
- Jenkins+Gitlab+SonarQube 代码质量管理集成
Jenkins+Gitlab+SonarQube 代码质量管理集成 一.环境准备 1.1.JDK11环境安装 1.2.Docker环境下搭建SonarQube所需的PostgreSQL数据库 1.2. ...
- jenkins sonar
一:持续集成的概念: 总体的概括 持续集成Continuous Integration 持续交付Continuous Delivery 持续部署Continuous Deployment 二:安装部署 ...
最新文章
- 剑指Offer #09 变态跳台阶(数列推导)
- 中原大学 php,中原大学php全集视频教程
- VLDB 2019 | 揭秘腾讯TDSQL全时态数据库系统
- redis 安装并设置为开机启动服务
- Mac/Linux/Win使用scrcpy投屏
- Docker教程小白实操入门(8)--基于save保存镜像与基于load加载镜像
- JCreator 使用技巧
- 简单的python汽车之家爬虫
- python并行编程 - 线程篇
- 性能服务器可以同时标注吗,关于服务器性能的一些思考
- magic3是鸿蒙系统吗,如果荣耀Magic3搭载屏下镜头和鸿蒙系统,你会做第一批吗?...
- 计算机ip地址和用户名和密码是什么,登陆无线路由器的IP地址是多少?怎么查看登录地址...
- 查看SQL Server的实例名
- [USACO07FEB]Lilypad Pond
- 基于STM32F1的6位QS-30辉光钟
- 【毕业设计】基于单片机无线充电的4轴飞行器 -物联网 嵌入式 stm32
- 人文素质与企业竞争力
- delphi 11 中 libaray path 的设置
- 面试官总问你“期望薪资”,为什么不直说能给多少钱?
- Python绘制美国队长之盾