首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >jenkins和docker实现自动化构建部署

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

作者头像
互扯程序
发布于 2018-07-30 02:06:25
发布于 2018-07-30 02:06:25
2.5K00
代码可运行
举报
文章被收录于专栏:互扯程序互扯程序
运行总次数:0
代码可运行

KS

Knowledge Sharing

知识分享

现在是资源共享的时代,同样也是知识分享的时代,如果你觉得本文能学到知识,请把知识与别人分享。

此篇文章介绍使用jenkins和docker实现自动化部署 当然 docker并不只是这点功能 博主整理了一些不错的docker教学视频 在公众号内回复“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。

方式一

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

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

方式二

把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到指定服务器的目录中,并且能在服务器上执行脚本。

脚本如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 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宿主机输入如下命令:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 # git clone https://git.oschina.net/bingoxubin/Dockerfile_tomcat.git

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
COPY  microframe-0.0.1.war  /opt/apache-tomcat/webapps/microframe-0.0.1.war

5.9 测试

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

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

访问页面:

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

转自:csdn

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-05-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 互扯程序 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
jenkins和docker实现自动化构建部署【面试+工作】
jenkins和docker实现自动化构建部署【面试+工作】 应用场景 程序员开发应用,开发后需要提交svn,然后从svn拉取代码,进行构建,发布到tomcat中,发布,然后看呈现效果,这样的工作是频
Java帮帮
2018/09/29
5.5K0
jenkins和docker实现自动化构建部署【面试+工作】
Jenkins与Docker的自动化CI/CD实战
在互联网时代,对于每一家公司,软件开发和发布的重要性不言而喻,目前已经形成一套标准的流程,最重要的组成部分就是持续集成(CI)及持续部署、交付(CD)。本文基于Jenkins+Docker+Git实现一套CI自动化发布流程。
星哥玩云
2022/07/28
8780
Jenkins与Docker的自动化CI/CD实战
一文详解 Jenkins 与 Docker 的自动化 CI/CD 实战
要想做到一个高效的 CI/CD 流程,需要有能力整合 DevOps 工具链及多环境适配,并且设计之初以自动化为原则,如一键部署、一键升级。
DevOps时代
2021/05/07
4.1K0
一文详解 Jenkins 与 Docker 的自动化 CI/CD 实战
初试Jenkins2.0 Pipeline持续集成
哎_小羊
2018/01/02
2K0
初试Jenkins2.0 Pipeline持续集成
Jenkins详细安装与构建部署使用教程[通俗易懂]
Jenkins是一个开源软件项目,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。Jenkins是基于Java开发的一种持续集成工具,用于监控持续重复的工作,功能包括: 1、持续的软件版本发布/测试项目。 2、监控外部调用执行的工作。
全栈程序员站长
2022/08/28
1.9K0
Jenkins详细安装与构建部署使用教程[通俗易懂]
手把手教你搭建Jenkins实现自动化部署
1.背景  在实际开发中,我们经常要一边开发一边测试,当然这里说的测试并不是程序员对自己代码的单元测试,而是同组程序员将代码提交后,由测试人员测试;  或者前后端分离后,经常会修改接口,然后重新部署;  这些情况都会涉及到频繁的打包部署;  手动打包常规步骤:  1.提交代码  2.问一下同组小伙伴有没有要提交的代码  3.拉取代码并打包(war包,或者jar包)  4.上传到Linux服务器  5.查看当前程序是否在运行  6.关闭当前程序  7.启动新的jar包  8.观察日志看是否启动成功  9.如果有同事说,自己还有代码没有提交……再次重复1到8的步骤!!!!!(一上午没了)  那么,有一种工具能够实现,将代码提交到git后就自动打包部署勒,答案是肯定的:Jenkins  当然除了Jenkins以外,也还有其他的工具可以实现自动化部署,如Hudson等  只是Jenkins相对来说,使用得更广泛。2.Jenkins服务器搭建及基本配置2.1.简介  Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。2.2.Jenkins自动化部署实现原理
小小科
2020/06/09
12.1K0
Docker 之 Jenkins自动化部署
Docker搭建微服务自动部署 <架构探险之路>,让我们来看看如何实现基于Docker的Jenkins自动化部署。
架构探险之道
2019/07/25
2.8K0
基于 Github+Jenkins+Maven+Docker 自动化构建部署
传统的开发、测试、部署方式,是由开发人员本机或打包机进行打包,将war包提交给测试人员部署,测试通过后,再由实施人员负责部署到预发、生产环境中。中间的衔接不连贯,容易出错,而且打包、部署存在重复的工作量。自动化构建部署(CICD)就是解决该问题,将从开发到部署的一系列流程变成自动化,衔接连贯,在构建失败时能够告知开发,构建成功后能够告知测试和实施人员。无论大中小公司,都应该有此流程。
DevOps时代
2019/08/21
3.9K0
基于 Github+Jenkins+Maven+Docker 自动化构建部署
打造企业级自动化运维平台系列(四):Jenkis 基础入门与安装
随着软件开发需求及复杂度的不断提高,团队开发成员之间如何更好地协同工作以确保 软件开发的质量已经慢慢成为开发过程中不可回避的问题。
民工哥
2024/01/18
9540
打造企业级自动化运维平台系列(四):Jenkis 基础入门与安装
Jenkins的安装和使用(Centos7)
 版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/it_lihongmin/article/details/80814384
拓荒者
2019/03/16
9940
Jenkins的安装和使用(Centos7)
基于Jenkins+Python+Ubuntu+Docker的接口/UI自动化测试环境部署详细过程
虫无涯
2023/08/16
2.3K0
【干货】Jenkins 持续集成实现系统自动化构建、测试及部署
Jenkins 是一款流行的开源持续集成(Continuous Integration)工具,广泛用于项目开发,具有自动化构建、测试和部署等功能。本文以 CentOS7 环境为例,总结了 Jenkins 的安装与配置、邮件功能使用,并接入阿里巴巴的著名开源项目 fastjson,以此演示 Java 项目(SVN+Maven)中 FindBugs/CheckStyle/PMD 等常用插件的使用、单元测试及其覆盖率报告等,力求实战性强。
IT技术小咖
2019/06/26
3.8K0
【干货】Jenkins 持续集成实现系统自动化构建、测试及部署
Jenkins教程(自动化部署)
Jenkins是一个开源的、提供友好操作界面的持续集成(CI)工具,广泛用于项目开发,具有自动化构建、测试和部署等功能。Jenkins用Java语言编写,可在Tomcat等流行的servlet容器中运行,也可独立运行。通常与版本管理工具(SCM)、构建工具结合使用。
全栈程序员站长
2022/08/27
10.7K0
Jenkins教程(自动化部署)
使用Jenkins配置自动化构建
持续集成是个简单重复劳动,人来操作费时费力,使用自动化构建工具完成是最好不过的了。 为了实现这个要求,我选择了Jenkins。 从http://mirrors.jenkins-ci.org/windo
小小科
2018/05/03
1K0
使用Jenkins配置自动化构建
jenkins+ansible+supervisor打造一个web构建发布系统
一步一步用jenkins,ansible,supervisor打造一个web构建发布系统。
菲宇
2019/06/11
1.1K0
jenkins+ansible+supervisor打造一个web构建发布系统
Docker(三) 通过gitlab部署CICD「建议收藏」
1)在上图红圈2部分设置需要跟踪变化的分支,根据上面的选项配置,可以是允许全部分支的变化触发构建,也可以设置只是具体的某些分支触发,这里示例是允许master分支上的变化触发构建。
全栈程序员站长
2022/08/15
3.3K0
Docker(三) 通过gitlab部署CICD「建议收藏」
Jenkins详细教程
  在实际开发中,我们经常要一边开发一边测试,当然这里说的测试并不是程序员对自己代码的单元测试,而是同组程序员将代码提交后,由测试人员测试;
全栈程序员站长
2022/08/28
9040
Jenkins详细教程
1.Jenkins入门基础介绍与持续化集成部署
Tips :个人理解 Jenkins 是一个调度平台,本身不需要处理任何事情,而是通过众多的插件来完成所有的工作;
全栈工程师修炼指南
2022/09/29
6.7K0
1.Jenkins入门基础介绍与持续化集成部署
jenkins+git+maven自动部署和发布
前言:关于jenkins自动部署在前面也写过两篇博客,两篇的内容大概涵盖了jenkins的全局配置,项目配置、使用svn作为源码管理、构建war普通war包到tomcat以及构建和部署springboot项目,今天这边博客主要就是使用git作为源码管理、另外对前面两篇博客做查漏补缺的工作,相信通过这三篇博客没有基础的童鞋同样可以搭建起来各种项目。
全栈程序员站长
2022/07/04
8710
jenkins+git+maven自动部署和发布
用Docker运行Jenkins自动化构建.NET Core项目
当代码提交到GitHub后,自动生成构建项目并部署到服务器。接下来介绍一下如何在容器中运行Jenkins,并自动化构建GitHub上的项目,使用自动化构建来解放你的双手。
Mr. Wei
2019/06/23
1.9K0
推荐阅读
相关推荐
jenkins和docker实现自动化构建部署【面试+工作】
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档