Docker版Jenkins持续集成

随着软件开发复杂度的不断提高,团队开发成员间如何更好地协同工作以确保软件开发的质量已经慢慢成为开发过程中不可回避的问题。尤其是近些年来,敏捷(Agile) 在软件工程领域越来越红火,如何能再不断变化的需求中快速适应和保证软件的质量也显得尤其的重要。持续集成持续集成(Continuous Integration,简称 CI)正是针对这一类问题的一种软件开发实践。它倡导团队开发成员必须经常集成他们的工作,甚至每天都可能发生多次集成。而每次的集成都是通过自动化的构建来验证,包括自动编译、发布和测试,从而尽快地发现集成错误,让团队能够更快的开发内聚的软件。持续集成的一般流程为:1.开发人员提交代码到 Source Repository (源代码仓库);2.触发持续集成服务器的相关功能。执行 编译 -> 测试 -> 输出结果 的流程;3.向开发人员反馈结果。

由此可见,在实现持续集成时,有以下必备因素:一个代码存储库,即需要版本控制软件来保障代码的可维护性,同时作为构建过程的素材库;一个自动构建过程,包括自动编译、分发、部署和测试等;一个持续集成服务器。持续集成服务器上最常用集成工具的就是Jenkins ,它是一个配置简单和使用方便的持续集成服务器。Jenkins 介绍Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。主要特色功能:流水线;多种类型的计算节点支持(SSH、JNLP等);丰富的插件扩展机制(Jenkins只是一个平台,真正运作的都是插件。这就是Jenkins流行的原因,因为Jenkins什么插件都有 )。Jenkins官网:https://jenkins.io/Docker 版 Jenkins 部署Jenkins 支持各种运行方式,可通过系统包、Docker 或者通过一个独立的 Java 程序。下面将给大家介绍简单易用的 Docker 形式,简单一两条语句搞定 Jenkins 部署:容器启动:# 镜像拉取docker pull jenkins# 容器启动docker run -d --name myjenkins -p 8086:8080 -p 50000:50000 -v /var/jenkins_home:/var/jenkins_home jenkins注:-d 后台运行镜像--name myjenkins 给容器起一个别名-p 8086:8080 将镜像的8080端口映射到服务器的80端口-p 50000:50000 将镜像的50000端口映射到服务器的50000端口-v jenkins:/var/jenkins_home /var/jenkins_home目录为jenkins工作目录,我们将硬盘上的一个目录挂载到这个位置,方便后续更新镜像后继续使用原来的工作目录启动后输入命令:# 查看所有容器docker ps -a可以看到jenkins已成功启动。Jenkins 配置:在浏览器输入 http://ip:8086 进入Jenkins登录页面。页面会提示你到服务器的指定位置获取初始化密码:

在页面输入密码,点击Continue,进入插件安装页面。我们点击左边的Install suggested plugins,如果对于 Jenkins 不够了解,安装推荐插件就好:

安装好插件后,系统会提示建立管理员账户;创建管理员账户后进入系统,接下来就可以配置常用工具。管理Jenkins -> 全局工具配置:配置JDK:

配置Git (如使用版本控制工具为其他,配置对应的工具即可):

在 插件管理中安装sonarqube-scanner插件后,即可配置 SonarQube Scanner:

在同样的页面还可以对 Maven 等进行配置。在Jenkins 管理 -> 系统管理 -> 中可以对GitHub/GitLab、SonarQubeSever进行配置:

构建任务在完成相关插件的安装,以及配置之后即可开始任务构建:配置源码信息:

构建与部署脚本:

注:建议创建新的虚拟环境,并安装第三方依赖;coverage run mange.py test 为执行 Django 项目测试,并使用coverage 统计代码覆盖率;coverage xml 为生成代码覆盖率报告,一遍之后的sonarqube展示覆盖率。代码扫描:

再新增启动web 服务器,即可;后续可以增加 UI 自动化测试等内容。后记

(0)

相关推荐

  • springboot docker jenkins 自动化部署并上传镜像的步骤详解

    这篇文章主要介绍了springboot docker jenkins 自动化部署并上传镜像的相关资料,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下 spri ...

  • Docker 快速安装Jenkins完美教程 (亲测采坑后详细步骤)

    一.前言 有人问,为什么要用Jenkins,在一些中小型企业?我说下我以前开发的痛点,每次开发一个项目完成后,需要打包部署,可能没有专门的运维人员,只能开发人员去把项目打成一个war包,可能这个项目已 ...

  • jenkins学习1-docker快速搭建jenkins环境

    前言 jenkins的环境搭建方法有很多,本篇使用docker快速搭建一个jenkins环境. 环境准备: linux服务器 docker docker运行jenkins 先下载jenkins镜像ht ...

  • 这样用Docker 搭建 Jenkins 实现自动部署,你知道吗?

    一.为什么用jenkins 主要是我们现在的项目都是采用手动部署的,每当给项目中新增一个功能就必须执行(打包--测试--上传测试修复的包到指定服务器--部署上线),这个流程操作起来繁杂,不小心就可能导 ...

  • 通过 Jenkins Docker 实现应用自动部署

    本文通过Jenkins+Docker+Git搭建了CI/DI环境,着重讲解Jenkins构建配置. 起因 2020年6月11日,突然被腾讯云通知,系统中存在木马文件,还好只是刚搭建的用于开发测试的服务 ...

  • Jenkins GitLab Docker SpringCloud Kubernetes构建可持续自动化微服务系统

    现有混合云平台的场景下,即有线下和线上的环境,又有测试与正式的场景,而且结合了Docker,导致打包内容有所区分,且服务的发布流程复杂起来,手工打包需要在编译阶段就要根据环境到处更改配置,因此纯手工发 ...

  • k8s Jenkins GitLab-自动化部署项目(强推)

    一.闲聊 如果以下内容有不足的地方,请指出,我会第一时间更正.谢谢大家. 二.部署流程介绍  1.先上一下手绘导图,大致的流程图如下:(不喜勿喷呀) 大致的部署流程是这样的:开发人员把做好的asp.n ...

  • 关于使用docker在windows上搭建Linux环境

    在Window10中使用Docker搭建Linux并配置并发版环境 大部分人在window中搭建Linux环境的主要方法可能是双系统或虚拟机,最近接触到Docker(一种新兴的虚拟化技术,可以快速有效 ...

  • docker 中运行的 jenkins 使用 npm 构建 Node.js 应用

    配置要求 最小 256MB 内存,推荐 512MB 以上 10GB硬盘空间,用于安装 Jenkins.Docker 镜像和容器 在 Docker 中运行 Jenkins 我们在服务器上面为 jenki ...

  • Jenkins持续集成

    时间 主题 8.13(周二)14:00 WebDriver鼠标键盘操作 8.14(周三)20:00 Jenkins持续集成 在传统的瀑布开发模型中,是所有人写好代码之后提交版本管理工具,然后统一进行合 ...

  • Jenkins持续集成的13种替代方案

    在<Jenkins越来越老了-现在该继续前进>,我们讨论了Jenkins最常见的问题,这些问题促使我们寻找替代方法.这就是为什么在本文中,我们提供了用于持续集成的最常见的Jenkins替代 ...

  • 持续集成之 Jenkins 的安装与配置(一)

    一.持续集成的概念 Jenkins 是一个开源软件项目,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能.Jenkins是基于 Java 开发的一种持续集成工具,用于监控持续重复的工作,功能包 ...

  • 持续集成之 Jenkins 配置基于角色的项目权限管理(五)

    一.前言 Jenkins是个好东西,开发运维测试的老江湖应该都听过,在此我就不再多做介绍jenkins是个什么东西了. jenkins自身的权限管理,无法实现用户指定显示视图或者视图中指定的jobs, ...

  • 持续集成之 Jenkins 如何通过 Gitlab 上的权限认证(三)

    一.背景 之前的项目是 public 的,如果我们在 gitlab上面把它修改成 private,然后再次打开配置,就可能会出现下面的错误,两种协议都会进行报错. 名称 IP 备注 Jenkins 1 ...

  • 持续集成 Jenkins +Gitlab + SSH 自动发布 HTML 代码

    一.整体流程 二.Jenkins 配置 2.1.首先安装插件 Gitlab Hook Plugin GitLab Plugin Publish Over SSH 2.2.配置目标服务器 系统管理 -- ...

  • 使用Jenkins实现项目持续集成部署

    十多年前,敏捷开发人员开始拥抱并促进测试驱动的开发和持续集成(CI).利用这些技术,只要开发人员将源代码检查到源存储库中,我们就可以自动构建源代码,执行详尽的单元测试套件以确保应用程序正常运行.许多测 ...

  • 持续集成、持续交付和持续部署有什么区别?0基础学linux

    持续集成.持续交付和持续部署有什么区别?很多人在学习Linux运维技能时总是分不清楚这三个知识点.那么我们一起来看下吧. 1持续集成 持续集成,一种软件工程流程,将所有工程师对于软件的工作复本,每天集 ...