根据自主选择版本号实现自动化部署git
一、总体实现流程概述web
大体为首先在git中新建本次发版标签,提交标签,在构建web页面选择构建版本号,执行构建动做。(此处为执行指定脚本,构建镜像,并利用docker-compose建立并启动容器)docker
方案具体实现shell
一、为了作到每次更新只须要拉取代码部分,因此先将项目须要用到的软件包,工具类等构建到基础镜像中,以后在更新时只须要下载最新版代码,引用以前构建好的基础包便可构建出可用的完整项目镜像。在此例中以构建的kettle基本运行环境做为基础镜像:浏览器
kettle:basic安全
脚本总体思想:工具
该种部署方式与第一种最大的不一样是不须要获取版本号,构建标识等数据,直接经过用户指定的版本号进行部署。测试
2.经过浏览器登陆Jenknis主页新建任务,选择构建一个自由风格的软件项目日志
3.输入项目名称和相关描述,勾选参数化构建,填入参数名称,对应参数取值等必要部分部署
4.配置源码管理:
这里是有git管理源码,配置相应的远程仓库地址、用户名与密码、标签等信息
5.构建
点击增长构建步骤(构建动做完成时所作的动做),运行指定脚本,本例为利用shell脚本进行镜像的构建以及对应容器的建立和启动。
6.构建后操做(整个构建终止后所作的动做)
常见的可选择在构建失败后发送邮件到指定地址。
至此整个任务构建完成。
2.执行构建
2.选择须要部署的版本(这里为git中打的tag),点击开始构建
构建历史以及错误日志查看的方式同上一种部署方案的相关步骤。
3、两种构建方式比较
第一种无参化构建虽然能够不作过多操做仅仅经过git提交操做既实现整个项目的部署,可是同时随着提交次数的增多,可能不利用版本号的管理,以及产生大量冗余的历史镜像,更适合提交比较频繁,非正式生产环境下的部署(如sit环境),而第二种含参化构建虽然须要用户收到的添加tag(在代码版本管理器中)以及收到选择部署版本,但这样有利于版本号的管理尤为是当新发布的项目出现不完善的状况下能够快速的经过指定tag从新部署原有的稳定版本,更适合须要保证版本的安全性以及有效性的正式生产环境或者较正式的测试环境(如uat环境)