设为首页 收藏本站
查看: 3485|回复: 1

[经验分享] Git+Jenkins+Docker实现web项目的自动部署

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2017-2-7 10:57:07 | 显示全部楼层 |阅读模式
实验中使用的Git平台:

  GitOsc

实验目的:
向GitOsc上传新代码后,自动通过Maven打包,然后构建相应的Tomcat镜像,并启动容器

一、准备GitOsc:
1.准备项目文件
wKioL1iX42Xi8uUhAAEvCdx9QAk914.jpg
2.准备GitOsc
wKiom1iX44awCqKeAAGhAA17GJQ685.jpg
注:
提示输入用户名和密码的时候,用户名使用完整的邮箱名

3.上传原始文件
git add *
git commit -m "AddFile"
git push origin master
wKiom1iX46WheebHAAEaY-OPYY8914.jpg

二、配置Jenkins:
wKiom1iX48bi-SJQAAH8BPARBuk533.jpg

wKioL1iX4-bRrGMKAAEXe60_Jis969.jpg

wKioL1iX5AXBA8oLAAIHHT7_nj0485.jpg

wKiom1iX5DHCrOjgAAEnUsZj2yI273.jpg

wKioL1iX5EvD6TnsAAF4Wh9fmrA864.jpg

wKiom1iX5G7z2LGWAAJ6QqpUVTg619.jpg

wKiom1iX5IqgTpALAAGPCvpp1N0284.jpg

wKioL1iX5KbDZLVRAAGzp-BvoX8515.jpg

wKiom1iX5NrgQ9bOAAE6OPtNqEY316.jpg
wKioL1iX5P6CN1wmAAFtVl49yig228.jpg

三、在GitOsc上配置PUSH钩子:
wKiom1iX5VWjVPOjAAG6_ao0w4Y036.jpg
http://ghx:63919fc15e0b82c9b8c3a ... ld?token=test-token
//必须使用Jenkins的公网IP,注意映射9999端口和50000端口

四、修改hello项目的源代码,并push到GitOsc上:
1.修改源代码
wKiom1iX5XmhA650AAJj3BsfUx4158.jpg

2.上传新文件
git add *
wKioL1iX5ZuwtlyDAAI_WzOHG5g690.jpg

git commit -m "Add newfile"
git push


效果:
wKiom1iX5c3A4SpZAAteNvJIHmY115.jpg
wKioL1iX5eqTN8tdAADlbbAI3NI813.jpg


wKiom1iX5gyAlSQLAAmrEf2yt04359.jpg
wKioL1iX5iqyaTE7AADo1Jnyh4U810.jpg

附shell脚本:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
Registry_URL=192.168.1.200:5000
tmpfile=/root/tempfile
if [ -e $tmpfile ] ; then
   sum=`cat $tmpfile`
   i=`expr $sum + 1`
else
   sum=0
   i=`expr $sum + 1`
fi
docker build -tmaven-hello:test $WORKSPACE/hello-maven
docker create --namemaven-hello maven-hello:test
docker cpmaven-hello:/hello/target/hello.war $WORKSPACE/hello-tomcat
docker build -t$Registry_URL/tomcat-hello:test${i} $WORKSPACE/hello-tomcat
docker push$Registry_URL/tomcat-hello:test${i}
if docker ps -a |grep -itomcat-hello ; then
docker rm -f tomcat-hello
fi
docker run -d -p 8888:8080--name tomcat-hello $Registry_URL/tomcat-hello:test${i}
if docker images$Registry_URL/tomcat-hello | grep test${sum}  ; then
docker rmi -f$Registry_URL/tomcat-hello:test${sum}
fi
if docker ps -a |grep -imaven-hello ; then
docker rm -f maven-hello
fi
if docker images maven-hello |grep test  ; then
docker rmi -f maven-hello:test
fi
echo $i >$tmpfile





脚本作用:

1.设置一个临时文件,记录该任务执行次数,用于做Tag
2.构建顺序:
使用源代码构建maven镜像,同时制作成war包->从maven容器中导出war包->构建新的tomcat镜像->push到私有仓库
3.删除原来的tomcat容器,并通过最新的tomcat镜像运行一个新的tomcat容器
4.依次删除不必要的容器&镜像:
删除旧的tomcat镜像->删除刚创建的maven容器->删除刚构建的maven镜像
5.最后向临时文件中传入累计数,供下次任务使用


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-338746-1-1.html 上篇帖子: 利用docker搭建gitlab代码仓库 下篇帖子: 解决github push错误The requested URL returned error: 403 Forbidden while ... 项目
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表