Jenkins是一个功能强大的应用程序,允许持续集成和持续交付项目,无论用的是什么平台。这是一个免费的源代码,可以处理任何类型的构建或持续集成。集成Jenkins可以用于一些测试和部署技术。Jenkins是一种软件允许持续集成。

  • docker搭建gitlab

安装 postgresql container

sudo docker run --name gitlab-postgresql -d \
--env 'DB_NAME=gitlabhq_production' \
--env 'DB_USER=gitlab' --env 'DB_PASS=password' \
--volume /srv/docker/gitlab/postgresql:/var/lib/postgresql \
sameersbn/postgresql:9.4-12
  • 安装 redis container
sudo docker run --name gitlab-redis -d --volume /srv/docker/gitlab/redis:/var/lib/redis sameersbn/redis:latest
  • 安装Jenkins
sudo docker run -d -u root --name myjenkins -p 8084:8080 -p 50000:50000 -v $PWD/jenkins:/var/jenkins_home -v $PWD/jenkins/docker.sock:/var/run/docker.sock jenkins
  • 安装Publish Over SSH插件
首页 -> 点击系统管理 -> 管理插件 ->可选插件 -> 过滤:ssh -> 选择Publish Over SSH插件,点击直接安装。
设置服务器SSH信息
首先在容器中生成rsa密钥:
# 从宿主机客户进入容器,目前容器名myjenkins,也可通过docker ps 查看
$ docker exec -it myjenkins /bin/bash
# 进入容器后建立.ssh目录,创建密钥文件私钥id_rsa,公钥id_rsa.pub
~ mkdir ~/.ssh && cd ~/.ssh
~ ssh-keygen -t rsa
# 一直回车即可
  • 启动gitlab-runner
docker run -d --name gitlab-runner --restart always -v $PWD/gitlab-runner/config:/etc/gitlab-runner -v $PWD/gitlab-runner/docker.sock:/var/run/docker.sock gitlab/gitlab-runner
  • 安装sonar

  1、Sonar介绍
  Sonar是一个用于代码质量管理的开源平台,用于管理Java源代码的质量。通过插件机制,Sonar 可以集成不同的测试工具,代码分析工具,以及持续集成工具,比如pmd-cpd、checkstyle、findbugs、Jenkins。通过不同的插件对这些结果进行再加工处理,通过量化的方式度量代码质量的变化,从而可以方便地对不同规模和种类的工程进行代码质量管理。同时 Sonar 还对大量的持续集成工具提供了接口支持,可以很方便地在持续集成中使用 Sonar。此外,Sonar 的插件还可以对 Java 以外的其他编程语言提供支持,对国际化以及报告文档化也有良好的支持。

  2、配置数据库
  Apache Derby 是Sonar自带并且默认安装使用的数据库,此外Sonar对如下数据库提供支持:MySQL 5.x, Oracle 10g XE, Postgresql, MS SqlServer等,本文以mysql为例介绍如何配置数据库:

  1)创建数据库

CREATE DATABASE sonar ACTER SET utf8 COLLATE utf8_general_ci;
CREATE USER 'sonar' IDENTIFIED BY 'sonar';
GRANT ALL ON sonar.* TO 'sonar'@'%' IDENTIFIED BY 'sonar';
GRANT ALL ON sonar.* TO 'sonar'@'localhost' IDENTIFIED BY 'sonar';
FLUSH PRIVILEGES;

  2)编辑${SONAR_HOME}/conf/sonar.properties配置数据库:

sonar.jdbc.username:                       sonar
sonar.jdbc.password: sonar
sonar.jdbc.url: jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true
# Optional properties
sonar.jdbc.driverClassName: com.mysql.jdbc.Driver

  3)配置DB驱动包

  如果使用Oracle数据库,必须手动复制驱动类到${SONAR_HOME}/extensions/jdbc-driver/oracle/目录下。其它支持的数据库默认提供了驱动。

  3、安装、配置Sonar

  创建运行sonar的CentOS账户sonar,并设置账户密码:
  # useradd sonar
  # passwd sonar
  Sonar默认集成了jetty容器,可以直接启动提供服务,也可以通过脚本构建为war包,部署在tomcat容器中。

1)直接启动
编辑.bash_profile,添加环境变量SONAR_HOME
$ vi $HOME/.bash_profile
修改成如下内容:
  PATH=$PATH:$HOME/bin
  SONAR_HOME=$HOME/sonar
  export PATH SONAR_HOME
$source $HOME/.bash_profile
运行如下命令启动sonar
$ {SONAR_HOME}/bin/linux-x86-64/sonar.sh start
Sonar默认的端口是”9000”、默认的上下文路径是”/”、默认的网络接口是”0.0.0.0”,默认的管理员帐号和密码为:admin/admin,这些参数都可以在配置文件中修改:
$ vi ${SONAR_HOME}/conf/sonar.properties

  4、配置为自启动服务

  创建自启动脚本文件/etc/init.d/sonar

  # vi /etc/init.d/sonar    ##添加如下内容

#!/bin/sh
#
# rc file for SonarQube
#
# chkconfig: 345 96 10
# description: SonarQube system (www.sonarsource.org)
#
### BEGIN INIT INFO
# Provides: sonar
# Required-Start: $network
# Required-Stop: $network
# Default-Start: 3 4 5
# Default-Stop: 0 1 2 6
# Short-Description: SonarQube system (www.sonarsource.org)
# Description: SonarQube system (www.sonarsource.org)
### END INIT INFO
/usr/bin/sonar $*

添加启动服务
# ln -s $SONAR_HOME/bin/linux-x86-64/sonar.sh /usr/bin/sonar
# chmod 755 /etc/init.d/sonar
# chkconfig --add sonar

5、配置插件
a)插件介绍
Sonar支持多种插件,将下载后的插件上传到${SONAR_HOME}extensions\plugins目录下,重新启动sonar。

  sonar默认集成了Java Ecosystem插件,该插件是一组插件的合集:

Java [sonar-java-plugin]:java源代码解析,计算指标等
Squid [sonar-squid-java-plugin]:检查违反Sonar定义规则的代码
Checkstyle [sonar-checkstyle-plugin]:使用CheckStyle检查违反统一代码编写风格的代码
FindBugs [sonar-findbugs-plugin]:使用FindBugs检查违反规则的缺陷代码
PMD [sonar-pmd-plugin]:使用pmd检查违反规则的代码
Surefire [sonar-surefire-plugin]:使用Surefire执行单元测试
Cobertura [sonar-cobertura-plugin]:使用Cobertura获取代码覆盖率
JaCoCo [sonar-jacoco-plugin]:使用JaCOCO获取代码覆盖率

  其他常用的插件
  JavaScript代码检查,python代码检查,Web页面检查(HTML、JSP、JSF、Ruby、PHP等),xml文件检查,scm源码库统计分析,文件度量,中文语言包,时间表显示度量结果,度量结果演进图

Jenkins持续集成 docker、gitlab、sonar的更多相关文章

  1. gitlab+gerrit+jenkins持续集成框架

    1.持续集成之gitlab+gerrit+jenkins 1.1. GitLab 1.1.1. 简介 GitLab 是一个使用使用Ruby on Rails搭建的,用于仓库管理系统的开源项目.使用Gi ...

  2. Docker+Jenkins持续集成环境(4):使用etcd+confd实现容器服务注册与发现

    前面我们已经通过jenkins+docker搭建了基本的持续集成环境,实现了服务的自动构建和部署,但是,我们遇到一个问题,jenkins构建出来的镜像部署后,需要通过ip:port去访问,有什么更好的 ...

  3. Docker+Jenkins持续集成环境(5): android构建与apk发布

    项目组除了常规的java项目,还有不少android项目,如何使用jenkins来实现自动构建呢?本文会介绍安卓项目通过jenkins构建的方法,并设计开发一个类似蒲公英的app托管平台. andro ...

  4. CentOS 7 Gitlab+Jenkins持续集成+自动化部署

    基于上次的环境<部署Gitlab+Jenkins持续集成环境> 来实现自动化部署 系统管理–>插件管理–>安装以下插件: Credentials Plugin(默认已经安装) ...

  5. 持续集成之④:GitLab触发jenkins构建项目

    持续集成之④:GitLab触发jenkins构建项目 一:目的为在公司的测试环境当中一旦开发向gitlab仓库提交成功代码,gitlab通知jenkins进行构建项目.代码质量测试然后部署至测试环境, ...

  6. Jekens 配置多项目SCM GitLab+Jenkins持续集成环境

    参考: 搭建GitLab+Jenkins持续集成环境图文教程 https://blog.csdn.net/ruangong1203/article/details/73065410 Jenkins中配 ...

  7. Docker+Jenkins持续集成

    Docker+Jenkins持续集成 使用etcd+confd实现容器服务注册与发现   前面我们已经通过jenkins+docker搭建了基本的持续集成环境,实现了服务的自动构建和部署,但是,我们遇 ...

  8. 手把手教你利用Jenkins持续集成iOS项目

    前言 众所周知,现在App的竞争已经到了用户体验为王,质量为上的白热化阶段.用户们都是很挑剔的.如果一个公司的推广团队好不容易砸了重金推广了一个APP,好不容易有了一些用户,由于一次线上的bug导致一 ...

  9. 基于Kubernetes/K8S构建Jenkins持续集成平台(下)

    基于Kubernetes/K8S构建Jenkins持续集成平台(下) Jenkins-Master-Slave架构图回顾: 安装和配置NFS NFS简介 NFS(Network File System ...

  10. Jenkins持续集成相关文章整理

    构建iOS持续集成平台(一)——自动化构建和依赖管理 构建iOS持续集成平台(二)——测试框架 构建iOS持续集成平台(三)——CI服务器与自动化部署 使用Jenkins搭建iOS开发的CI服务器 一 ...

随机推荐

  1. Jacko pg walkthrough Intermediate window

    nmap nmap -p- -A -sS 192.168.219.66 Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-12-19 00:08 U ...

  2. 两种方式让你用Python轻松在RDKX5上部署推理

    作者:SkyXZ CSDN:SkyXZ--CSDN博客 博客园:SkyXZ - 博客园 宿主机环境:WSL2-Ubuntu22.04+Cuda12.6.D-Robotics-OE 1.2.8.Ubun ...

  3. Kali 修改root密码

    Kali 修改root密码 进入 Kali 系统,切换 root 用户 sudo su 输入当前用户密码 成功切换到 root 用户后,进行修改密码 passwd root

  4. Luogu P11280 GFOI Round 2 Jom & Terry 题解 [ 黄 ] [ BFS ]

    Jom & Terry:讲个笑话,我赛时被诈骗了. 思路 先放结论:如果 Terry 到终点的距离小于等于 Jom 到终点的距离,那么 Terry 一定不会被抓. 为啥呢,因为不管 Jom 堵 ...

  5. mybatis之配置优化

    属性优化 properties 外部配置文件[db.properties] driver=com.mysql.jdbc.Driver url=jdbc:mysql://localhost:3306/m ...

  6. mybatis之增删改查

    核心配置文件中配置数据库连接及注册mapper.xml mapper.xml用来编写执行的sql(namespace为对应的接口类,标签id为接口类中的方法名) User为实体对象类 UserDao为 ...

  7. P9869 [NOIP2023] 三值逻辑 题解

    NOIP2023 T2 三值逻辑 题解 题面 思路 乍一看好像很并查集,而且不太难,但是, 注意到:按顺序运行这 \(m\) 条语句 事情并没有那么简单. 比如说如下情况: x1:=T x2:=x1 ...

  8. LeetCode 题解大全

    项目说明 LeetCode 系列题解致力于帮助程序员更好地理解和掌握算法思维,内容包含详细的解题思路分析.图文并茂的示例讲解和完整的代码实现. LeetCode 最全题解:持续更新中,欢迎 Star ...

  9. QQ/微信域名防红方法,打开网站跳转浏览器打开

    简单通用QQ/微信跳转浏览器打开代码 使用方法: 将代码全部复制 粘贴到 网站根目录下index.php文件的顶端 注意:不要覆盖了 index.php里面的原代码,原代码保留(请尽快把样式以及图片本 ...

  10. AI 插件第二弹,更强更好用

    概述 插件大更新 前一周, 我们开源了一个 AI 插件,发了一篇介绍的文章 DeepSeek 插件开源上线!支持多家云服务,一键解锁满血版 AI 引来了一些小小的反响,也有用户在评论区或者私底下提了一 ...