根據自主選擇版本號實現自動化部署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環境)