jenkins和docker实现自动化构建部署【面试+工作】

网友投稿 285 2022-10-21

jenkins和docker实现自动化构建部署【面试+工作】

​jenkins和docker实现自动化构建部署【面试+工作】​

应用场景

程序员开发应用,开发后需要提交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下载地址  –jar jenkins.war(注意jenkins.war得是绝对路径,例如下图所示),在浏览器中输入 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​​

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

Repository URL获取方式:

​5.4 配置构建任务​

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

​​5.5 配置构建参数​​

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

​​5.6 邮件通知​​

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

​​5.7 配置目标容器环境​​

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

​脚本如下:​

​这样jenkins上就操作完毕了。​

​​5.8 生成docker实例​​

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

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

​​5.9 测试​​

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

等几分钟就能看到结果。可以看到jenkins自动开始构建了:

访问页面:

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

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Elasticsearch实践(一)用Docker搭建Elasticsearch集群【面试+工作】
下一篇:关于Filter中获取请求体body后再次读取的问题
相关文章

 发表评论

暂时没有评论,来抢沙发吧~