Jenkins和Docker实现自动化构建部署

原创 2018年04月15日 17:18:35

应用场景

程序员开发应用,开发后需要提交svn,然后从svn拉取代码,进行构建,发布到tomcat中,发布,然后看呈现效果,这样的工作是频繁反复的在进行的,浪费了程序员的大量时间,那么能不能把这些工作自动化呢,只需要程序员更新代码到svn,然后自动的构建,发布,呈现效果,当然是可以的,通过jenkins和docker来实现。

操作步骤


操作步骤

1. 概述

开发者的工作大概流程是,eclipse编写代码,提交代码到svn,然后进行编译,打包,测试,部署,发布。

这其中很多重复的工作,影响开发人员的情绪,应当让开发者只重视代码阶段,后面的内容不用去理会,只要编写代码,提交代码,然后就能打开页面看到效果,那是最好的。

这就需要自动化构建,jenkins就是很好的自动化构建工具。

2. 自动化流程

具体流程如下:

  • 1.编写代码,修改代码
  • 2.提交代码到svn
  • 3.Jenkins自动检测到svn代码更新,从svn拉取最新代码
  • 4.Jenkins自动编译
  • 5.Jenkins自动打成tomcat下能运行的war包
  • 6.Jenkins自动上传war包到docker宿主机目录
  • 7.Jenkins自动构建web容器镜像,包含项目demo
  • 8.Jenkins自动启动镜像,变成容器,映射端口
  • 9.最后就有项目运行的界面提供了

3. 环境准备

3.1 jenkins

Jenkins简单点说就是一个war包。一个自动化服务,提供各种插件集成。 
jenkins下载地址


Jenkins部署有两种方法(可以装到windows或者linux,实验中以windows的方式一为例):

Jenkins是用Java语言开发的系统,首先要确定服务器上已经安装JDK或者JRE。

1.方式一

直接运行java –jar jenkins.war(注意jenkins.war得是绝对路径,例如下图所示),在浏览器中输入 
http://localhost:8080即可。


到此,jenkins安装部署完毕,关于如何使用jenkins,下文详细介绍。

2.方式二

把jenkins的war包拷贝到tomcat的webapps目录下,启动tomcat,访问地址:http://ip:8080/jenkins

3.2 maven

参照windows安装maven博文

3.3 svn

参照svn如何使用的相关博文

以及windows端安装svn服务器端的博文

3.4 jdk

参考windows安装jdk博文

3.5 docker

参考docker安装使用博文

4. 基础配置

4.1 jenkins配置

  • 首先需要进入jenkins主界面,安装必须要的插件。


进入插件页面,选择可选插件,搜索ssh,安装SSH plugin和Publish Over SSH插件,由于实验已经安装过,所以图中没有显示了。


  • 然后回到主界面,进行系统设置。

配置maven configuretion,加上本地maven安装地址,指向settings文件。


jdk配置,指向本地jdk安装目录。

Maven配置,指向本地maven安装路径。


配置jenkins location,配置管理员邮箱。

配置邮件通知,需要邮箱开启pop3,smtp,可以测试验证。后面配置邮件通知时需要用到。


配置Publish over SSH。这里配置后才能在配置目标容器环境时,选择到构建完成后发布到的目标容器。


最后应用,保存。

5.配置自动化

5.1 编写代码

这里需要基于maven构建的工程。

5.2 提交代码至svn

右击项目,选择team,提交,到svn服务器的某个地址,实验中提交到如下目录:

需要在svn下新建mavenproject文件夹,具体操作参考3.3。

5.3 新建jenkins项目连接svn

点击界面左侧新建,项目名称可以随意命名,选择maven项目:


选择源码地址,这功能可以让jenkins可以从svn上拉取代码。

Repository URL获取方式:


5.4 配置构建任务

该功能,jenkins可以检测svn代码,如果发生变化,那么立即自动执行构建:

5.5 配置构建参数

该功能,jenkins可以自动给maven项目打包

5.6 邮件通知

该功能,jenkins构建过程中,可以向指定邮箱发送邮件,提示构建状况。

5.7 配置目标容器环境

选择send build artifacts over SSH,该功能可以实现将本地打包的war包,ssh到指定服务器的目录中,并且能在服务器上执行脚本。


脚本如下:

 docker rm -f  microframe       #删除已建的容器,防止容器名,端口冲突
 sleep 1
 cd /Dockerfile_tomcat
 docker build -t xubin/website:v1 .    #根据dockerfile生成web镜像
 sleep 1
 docker run -d -p 8080:8080 --name microframe xubin/website:v1    #运行镜像生成容器
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

这样jenkins上就操作完毕了。

5.8 生成docker实例

在docker宿主机输入如下命令:

 # git clone https://git.oschina.net/bingoxubin/Dockerfile_tomcat.git

执行完毕后,打开虚拟机上的/Dockerfile_tomcat目录,修改该目录下的Dockerfile文件,加入如下一行:

COPY  microframe-0.0.1.war  /opt/apache-tomcat/webapps/microframe-0.0.1.war
  • 1

5.9 测试

当我们修改eclipse上的代码,然后提交到svn:

等几分钟就能看到结果。

可以看到jenkins自动开始构建了:



访问页面:


最后可以看出,生成了指定的容器。











jenkins和docker实现自动化构建部署

应用场景 程序员开发应用,开发后需要提交svn,然后从svn拉取代码,进行构建,发布到tomcat中,发布,然后看呈现效果,这样的工作是频繁反复的在进行的,浪费了程序员的大量时间,那么能不能把这些...
  • bingoxubin
  • bingoxubin
  • 2017-12-06 09:08:46
  • 310010

jenkins部署手册

  • 2017年12月26日 10:35
  • 3.47MB
  • 下载

Docker部署Jenkins并发布web服务

工作需要,需要搭建Jenkins,编译java项目,并且打包发布web服务。这样会大大的节省开发人员和测试人员的工作量,也为发布产品提供方便,所以构建了这样的一个系统,相对来说比较简单,只是对于初次接...
  • bxy21cn
  • bxy21cn
  • 2016-08-03 18:49:18
  • 3737

Docker+Jenkins打造自动化测试以及部署升级环境

在项目迭代周期有限的情况下,流程冗长条件复杂的升级测试无法再依赖人工的办法完成,必须借助自动化测试的工具和方法解决这个问题。本文将以Transwarp Data Hub(TDH)的自动化升级测试的...
  • xgjianstart
  • xgjianstart
  • 2017-01-03 16:06:13
  • 3226

jenkins配置应用自动部署到docker

概要本文记录jenkins上配置docker自动部署所用插件 Hudson SCP publisher plugin:拷贝部署文件到远程虚拟机 Publish Over SSH:执行远程部署命令 En...
  • apexlj
  • apexlj
  • 2015-11-03 15:05:45
  • 10801

0基础教你搭建一套可自动化构建的微服务框架(SpringBoot+Dubbo+Docker+Jenkins)

本文你将学到什么? 本文将以原理+实战的方式,首先对“微服务”相关的概念进行知识点扫盲,然后开始手把手教你搭建这一整套的微服务系统。 项目完整源码下载 https://github.co...
  • u010425776
  • u010425776
  • 2018-02-02 15:52:27
  • 778

使用Docker构建持续集成与自动部署的Docker集群

为什么使用Docker “ 从我个人使用的角度讲的话  部署来的更方便  只要构建过一次环境 推送到镜像仓库 迁移起来也是分分钟的事情  虚拟化让集群的管理和控制部署都更方便 ...
  • java_dyq
  • java_dyq
  • 2016-07-22 17:35:51
  • 10010

jenkis自动化部署docker容器脚本

!/bin/bashauthor xuejpdate 2017-03-28ITEM_NAME=”anloq-node-zhengshi” #项目名字 IMG_MANGER=”192.168.0.12...
  • qq_34605594
  • qq_34605594
  • 2017-03-28 18:26:19
  • 1554

SpringBoot + maven + Jenkins + docker 实现docker集群一键自动化部署

  • 2017年09月27日 10:44
  • 828KB
  • 下载

CI - Jenkins自动化构建和自动化部署

https://jenkins.io/index.html 下载安装部署jenkins环境, 直接用ip加端口进行登录 http://localhost:8080,设置登录用户,密码进入Jenk...
  • hanshuiyihenwutong
  • hanshuiyihenwutong
  • 2017-02-14 09:35:14
  • 2017
收藏助手
不良信息举报
您举报文章:Jenkins和Docker实现自动化构建部署
举报原因:
原因补充:

(最多只允许输入30个字)