Docker+Jenkins+Git持续部署实践

Stella981
• 阅读 345

Docker+Jenkins+Git持续部署实践

程序IT圈

www.cxyquan.com

优秀程序猿技术公众号

本文由挨踢男孩投稿发布

一、基本思路

springboot项目做演示

1、项目的部署在Jenkins上执行构建

2、Jenkins自动从github上面拉取代码到服务器

3、maven将项目打成jar包

4、创建个docker镜像,通过docker容器部署项目

二、环境搭建

1、系统环境

[root@sky ~]# cat /etc/redhat-releaseCentOS Linux release 7.5.1804 (Core)

2、Install JDK

1>下载:jdk-8u131-linux-x64.rpm

2>rpm -ivh jdk-8u131-linux-x64.rpm

3>配置环境变量

vi ~/.bashrc

export JAVA_HOME=/usr/java/latestexport PATH=$PATH:$JAVA_HOME/bin

source ~/.bashrc

4>测试

[root@sky ~]# java -versionjava version "1.8.0_144"Java(TM) SE Runtime Environment (build 1.8.0_144-b01)Java HotSpot(TM) 64-Bit Server VM (build 25.144-b01, mixed mode)

3、Install Jenkins

1>下载:http://updates.jenkins-ci.org/download/war/

2> 启动:java -jar  jenkins.war(默认端口8080,可通过httpPort指定端口)Docker+Jenkins+Git持续部署实践

3>访问:http://ip:port/

Docker+Jenkins+Git持续部署实践

在/root/.jenkins/secrets/initialAdminPassword中找到可以找到秘钥,在输入后会有初始化登陆的用户名、密码界面,登陆后:(下图是后续截的:没有demo)

Docker+Jenkins+Git持续部署实践

4、Install maven

1>下载:

http://archive.apache.org/dist/maven/maven-3/3.5.0/binaries/

2>解压:tar -zxvf apache-maven-3.5.0-bin.tar.gz

3>配置环境变量

vi ~/.bashrc

export  MAVEN_HOME=/usr/local/apache-maven-3.5.0export PATH=$PATH:$MAVEN_HOME/bin

source ~/.bashrc

4>验证

Docker+Jenkins+Git持续部署实践

5、Install git

yum update && yum  install -y git

Docker+Jenkins+Git持续部署实践

6、Install docker

yum install docker ,这里就不run一个hello world测试了

Docker+Jenkins+Git持续部署实践

三、构建自由风格的项目

Item name****:输入名称

Docker+Jenkins+Git持续部署实践

Github project:这里用的是github项目,Project Url需要填写你的项目地址

Docker+Jenkins+Git持续部署实践

源码管理:填写所需拉取的项目的地址和分支

Docker+Jenkins+Git持续部署实践

Credentials:add jenkins ,下图中username和password是github的用户名和密码

Docker+Jenkins+Git持续部署实践

构建:选择maven版本和填写clean package命令

Docker+Jenkins+Git持续部署实践

这里的maven需要在系统管理->Global Tool Configuration->Maven 安装,这里maven的路径就是之前服务器maven安装的路径

Docker+Jenkins+Git持续部署实践

安装完后这个位置就可以有选择maven的版本了

Docker+Jenkins+Git持续部署实践

Execute shell:书写shell

Docker+Jenkins+Git持续部署实践

到这里就配置好了,点击立即构建

Docker+Jenkins+Git持续部署实践

查看控制台日志:

Docker+Jenkins+Git持续部署实践

Docker+Jenkins+Git持续部署实践

最后看到docker镜像的构建成功和容器的启动,我们再到去服务器确认:

Docker+Jenkins+Git持续部署实践

Docker+Jenkins+Git持续部署实践

四、验证

通过postman创建一条员工数据

Docker+Jenkins+Git持续部署实践

查询es节点上这条数据是否存在

Docker+Jenkins+Git持续部署实践

五、附项目结构图

这里主要关注下Dockerfile的位置和编写

Docker+Jenkins+Git持续部署实践

推荐阅读:

福利来了,Vip会员视频赠送

这次免费赠送10套最新的编程视频

时隔4年,微信7.0迎来史上最大更新(附上内测版本)

Docker+Jenkins+Git持续部署实践 进QQ群 Docker+Jenkins+Git持续部署实践 进微信群

Docker+Jenkins+Git持续部署实践

点赞变好看,记得点个好看

本文分享自微信公众号 - 程序IT圈(DeveloperIT)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

点赞
收藏
评论区
推荐文章
秃头王路飞 秃头王路飞
4个月前
webpack5手撸vue2脚手架
webpack5手撸vue相信工作个12年的小伙伴们在面试的时候多多少少怕被问到关于webpack方面的知识,本菜鸟最近闲来无事,就尝试了手撸了下vue2的脚手架,第一次发帖实在是没有经验,望海涵。languageJavaScript"name":"vuecliversion2","version":"1.0.0","desc
浅梦一笑 浅梦一笑
4个月前
初学 Python 需要安装哪些软件?超级实用,小白必看!
编程这个东西是真的奇妙。对于懂得的人来说,会觉得这个工具是多么的好用、有趣,而对于小白来说,就如同大山一样。其实这个都可以理解,大家都是这样过来的。那么接下来就说一下python相关的东西吧,并说一下我对编程的理解。本人也是小白一名,如有不对的地方,还请各位大神指出01名词解释:如果在编程方面接触的比较少,那么对于软件这一块,有几个名词一定要了解,比如开发环
技术小男生 技术小男生
4个月前
linux环境jdk环境变量配置
1:编辑系统配置文件vi/etc/profile2:按字母键i进入编辑模式,在最底部添加内容:JAVAHOME/opt/jdk1.8.0152CLASSPATH.:$JAVAHOME/lib/dt.jar:$JAVAHOME/lib/tools.jarPATH$JAVAHOME/bin:$PATH3:生效配置
光头强的博客 光头强的博客
4个月前
Java面向对象试题
1、请创建一个Animal动物类,要求有方法eat()方法,方法输出一条语句“吃东西”。创建一个接口A,接口里有一个抽象方法fly()。创建一个Bird类继承Animal类并实现接口A里的方法输出一条有语句“鸟儿飞翔”,重写eat()方法输出一条语句“鸟儿吃虫”。在Test类中向上转型创建b对象,调用eat方法。然后向下转型调用eat()方
刚刚好 刚刚好
4个月前
css问题
1、在IOS中图片不显示(给图片加了圆角或者img没有父级)<div<imgsrc""/</divdiv{width:20px;height:20px;borderradius:20px;overflow:h
blmius blmius
1年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
小森森 小森森
4个月前
校园表白墙微信小程序V1.0 SayLove -基于微信云开发-一键快速搭建,开箱即用
后续会继续更新,敬请期待2.0全新版本欢迎添加左边的微信一起探讨!项目地址:(https://www.aliyun.com/activity/daily/bestoffer?userCodesskuuw5n)\2.Bug修复更新日历2.情侣脸功能大家不要使用了,现在阿里云的接口已经要收费了(土豪请随意),\\和注意
晴空闲云 晴空闲云
4个月前
css中box-sizing解放盒子实际宽高计算
我们知道传统的盒子模型,如果增加内边距padding和边框border,那么会撑大整个盒子,造成盒子的宽度不好计算,在实务中特别不方便。boxsizing可以设置盒模型的方式,可以很好的设置固定宽高的盒模型。盒子宽高计算假如我们设置如下盒子:宽度和高度均为200px,那么这会这个盒子实际的宽高就都是200px。但是当我们设置这个盒子的边框和内间距的时候,那
艾木酱 艾木酱
3个月前
快速入门|使用MemFire Cloud构建React Native应用程序
MemFireCloud是一款提供云数据库,用户可以创建云数据库,并对数据库进行管理,还可以对数据库进行备份操作。它还提供后端即服务,用户可以在1分钟内新建一个应用,使用自动生成的API和SDK,访问云数据库、对象存储、用户认证与授权等功能,可专
Stella981 Stella981
1年前
KVM调整cpu和内存
一.修改kvm虚拟机的配置1、virsheditcentos7找到“memory”和“vcpu”标签,将<namecentos7</name<uuid2220a6d1a36a4fbb8523e078b3dfe795</uuid
helloworld_28799839 helloworld_28799839
4个月前
常用知识整理
Javascript判断对象是否为空jsObject.keys(myObject).length0经常使用的三元运算我们经常遇到处理表格列状态字段如status的时候可以用到vue