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 实现代码检测相关推荐

  1. sonar做代码检测时如何忽略一些代码文件

    1.管理员登录sonar 2.如图 一条规则配置一个,不要填写逗号或者分号分割的多个规则

  2. gitlab+jenkins+sonar做代码质量分析

  3. inno setup插件可选安装代码_代码检测工具(sonar docker方式安装)

    sonarqube 是一个代码质量检测工具,内置很多有用的Java规范,使用sonar检测工具,能够帮助开发者写出干净和安全的代码,让初级开发者也能写出高水平代码 安装地址:https://docs. ...

  4. jenkins学习系列之PMD静态代码检测

    一.jenkins集成PMD流程 实际生产中,上线的代码往往要经过检测,满足一些规则才行,这些规则可以是直接使用官方的规则,也可以是自己写的. 因为目前的工作和java有关,所以这里以java代码静态 ...

  5. maven+jenkins+sonar集成搭建

    转载地址:http://blog.csdn.net/wzd_0116/article/details/24651333 集成质量管理平台搭建 第一章Sonar安装...2 1.1下载sonar.2 1 ...

  6. coverity代码检测工具介绍_兴业证券:静态代码检测最佳实践

    一. 引言 谷歌发布的代码规范中指出,80% 的缺失是由 20% 的代码所引起的.规范的代码可以消除过于强烈的个人风格,有助于代码在项目间高效的流转:提升代码的正确性,降低低级问题产生的可能性:同时也 ...

  7. coverity代码检测工具介绍_微服务测试之静态代码扫描

    静态代码扫描为整个发展组织增加价值.无论您在开发组织中发挥的作用如何,静态代码扫描解决方案都具有附加价值,拥有软件开发中所需要的尖端功能,最大限度地提高质量并管理软件产品中的风险. 背景 微服务架构模 ...

  8. Jenkins+Gitlab+SonarQube 代码质量管理集成

    Jenkins+Gitlab+SonarQube 代码质量管理集成 一.环境准备 1.1.JDK11环境安装 1.2.Docker环境下搭建SonarQube所需的PostgreSQL数据库 1.2. ...

  9. jenkins sonar

    一:持续集成的概念: 总体的概括 持续集成Continuous Integration 持续交付Continuous Delivery 持续部署Continuous Deployment 二:安装部署 ...

最新文章

  1. 剑指Offer #09 变态跳台阶(数列推导)
  2. 中原大学 php,中原大学php全集视频教程
  3. VLDB 2019 | 揭秘腾讯TDSQL全时态数据库系统
  4. redis 安装并设置为开机启动服务
  5. Mac/Linux/Win使用scrcpy投屏
  6. Docker教程小白实操入门(8)--基于save保存镜像与基于load加载镜像
  7. JCreator 使用技巧
  8. 简单的python汽车之家爬虫
  9. python并行编程 - 线程篇
  10. 性能服务器可以同时标注吗,关于服务器性能的一些思考
  11. magic3是鸿蒙系统吗,如果荣耀Magic3搭载屏下镜头和鸿蒙系统,你会做第一批吗?...
  12. 计算机ip地址和用户名和密码是什么,登陆无线路由器的IP地址是多少?怎么查看登录地址...
  13. 查看SQL Server的实例名
  14. [USACO07FEB]Lilypad Pond
  15. 基于STM32F1的6位QS-30辉光钟
  16. 【毕业设计】基于单片机无线充电的4轴飞行器 -物联网 嵌入式 stm32
  17. 人文素质与企业竞争力
  18. delphi 11 中 libaray path 的设置
  19. 面试官总问你“期望薪资”,为什么不直说能给多少钱?
  20. Python绘制美国队长之盾

热门文章

  1. 使用PyPDF实现批量添加水印
  2. 智合同丨建设工程合同的审查技巧和方法
  3. AUGUSTUS安装 基因训练、预测软件
  4. SIMetrix教程-001.SIMetrix软件简介与安装
  5. SIMetrix教程-005.SIMetrix导入第三方库;SIMetrix导入模型
  6. 【脂肪酶催化的非天然反应】 -文献筛选与综述 (1)
  7. vue脚手架_基础API、Vue基本概念、vue-cli 脚手架、vue指令
  8. 前端学习笔记之CSS3基础语法与盒模型(二)
  9. Freeline配置使用过程
  10. 爱数科技python开发岗面试