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

简介: 应用场景 程序员开发应用,开发后需要提交svn,然后从svn拉取代码,进行构建,发布到tomcat中,发布,然后看呈现效果,这样的工作是频繁反复的在进行的,浪费了程序员的大量时间,那么能不能把这些工作自动化呢,只需要程序员更新代码到svn,然后自动的构建,发布,呈现效果,当然是可以的,通过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下载地址


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    #运行镜像生成容器

这样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

5.9 测试

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

这里写图片描述

等几分钟就能看到结果。

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

这里写图片描述

这里写图片描述

访问页面:

这里写图片描述

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

这里写图片描述

目录
相关文章
|
弹性计算 人工智能 前端开发
在阿里云ECS上部署n8n自动化工作流:U2实例实战
本文介绍如何在阿里云ECS的u2i/u2a实例上部署开源工作流自动化平台n8n,利用Docker快速搭建并配置定时任务,实现如每日抓取MuleRun新AI Agent并推送通知等自动化流程。内容涵盖环境准备、安全组设置、实战案例与优化建议,助力高效构建低维护成本的自动化系统。
2483 5
|
Kubernetes jenkins 持续交付
Artifact Hub在Kubernetes中的应用:部署Jenkins的脚本整理
以上步骤断言清晰明确地描述了如何通过Artifact Hub 使用Helm图表来部署Kubernetes 中得Jenkis 实例,并且提供了相应得Shell 脚本作为执行指南. 这样不但能够帮助用户快速地进行操作, 同时也能够通过自定义参数来满足不同用户需求.
381 5
|
人工智能 Ubuntu 前端开发
Dify部署全栈指南:AI从Ubuntu配置到HTTPS自动化的10倍秘籍
本文档介绍如何部署Dify后端服务及前端界面,涵盖系统环境要求、依赖安装、代码拉取、环境变量配置、服务启动、数据库管理及常见问题解决方案,适用于开发与生产环境部署。
2030 1
|
弹性计算 Devops Shell
用阿里云 DevOps Flow 实现 ECS 部署自动化:从准备到落地的完整指南
阿里云 DevOps Flow 是一款助力开发者实现自动化部署的高效工具,支持代码流水线构建、测试与部署至ECS实例,显著提升交付效率与稳定性。本文详解如何通过 Flow 自动部署 Bash 脚本至 ECS,涵盖环境准备、流水线搭建、源码接入、部署流程设计及结果验证,助你快速上手云上自动化运维。
1087 0
存储 jenkins 持续交付
1172 2
|
jenkins Java 持续交付
使用 Jenkins 和 Spring Cloud 自动化微服务部署
随着单体应用逐渐被微服务架构取代,企业对快速发布、可扩展性和高可用性的需求日益增长。Jenkins 作为领先的持续集成与部署工具,结合 Spring Cloud 提供的云原生解决方案,能够有效简化微服务的开发、测试与部署流程。本文介绍了如何通过 Jenkins 实现微服务的自动化构建与部署,并结合 Spring Cloud 的配置管理、服务发现等功能,打造高效、稳定的微服务交付流程。
1325 0
使用 Jenkins 和 Spring Cloud 自动化微服务部署
|
运维 Prometheus 监控
3 年部署经验总结:用自动化工具轻松管理 300+ 服务器开源软件
三年前接手公司IT部门时,我满怀信心,却发现部署效率低下。尽管使用了GitLab、Jenkins、Zabbix等100+开源工具,部署仍耗时费力。文档厚重如百科,却难解实际困境。一次凌晨三点的加班让我下定决心改变现状。偶然看到一篇国外博客,介绍了自动化部署的高效方式,我深受启发。
495 0
|
Java jenkins 应用服务中间件
结合Jenkins与Tomcat,实施Maven项目的自动构建和部署流程。
任何项目构建和部署的自动化流程,总离不开对各个环节精细把控与密切配合。涉及到源代码管理、构建工具、持续集成服务器以及最终的运行时环境的协调。通过上述简洁实用的步骤,可以实现Maven项目从源代码到运行状态的无缝过渡,进而提升软件开发的效率与质量。
693 0
|
运维 监控 持续交付
还在为部署开源工具烦恼?自动化部署工具 Websoft9一键部署 300+ 开源应用
在数字化时代,开源工具因免费、灵活、可定制等特性广受欢迎,但其部署过程却常因环境配置复杂、依赖繁琐、耗时长等问题令人头疼。本文介绍了传统部署的三大难点,并提出两种解决方案:传统手动部署与集成化控制台部署。
还在为部署开源工具烦恼?自动化部署工具 Websoft9一键部署 300+ 开源应用