设为首页 收藏本站
查看: 862|回复: 0

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

[复制链接]

尚未签到

发表于 2018-5-28 10:38:52 | 显示全部楼层 |阅读模式
  实验中使用的Git平台:

  GitOsc
  

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

  一、准备GitOsc:
  1.准备项目文件
DSC0000.png

  2.准备GitOsc
DSC0001.png

  注:
  提示输入用户名和密码的时候,用户名使用完整的邮箱名
  
  3.上传原始文件
  git add *
  git commit -m "AddFile"
  git push origin master
DSC0002.png

  
  二、配置Jenkins:
DSC0003.png

  
DSC0004.png

  
DSC0005.png

  
DSC0006.png

  
DSC0007.png

  
DSC0008.png

  
DSC0009.png

  
DSC00010.png

  
DSC00011.png

DSC00012.png

  
  三、在GitOsc上配置PUSH钩子:
DSC00013.png

  http://ghx:63919fc15e0b82c9b8c3ac47af8dabbd@180.172.232.87:9999/job/test-hello/build?token=test-token
  //必须使用Jenkins的公网IP,注意映射9999端口和50000端口
  
  四、修改hello项目的源代码,并pushGitOsc上:
  1.修改源代码
DSC00014.png

  
  2.上传新文件
  git add *
DSC00015.png

  
  git commit -m "Add newfile"
  git push
  
  
  效果:
DSC00016.png

DSC00017.png

  
  
DSC00018.png

DSC00019.png

  
  shell脚本:
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-482110-1-1.html 上篇帖子: 利用docker搭建gitlab代码仓库 下篇帖子: Docker学习笔记 — Docker私有仓库搭建
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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