Git+Jenkins+Docker實現web項目的自動部署

實驗中使用的Git平臺:
git

  GitOscdocker


實驗目的:shell

GitOsc上傳新代碼後,自動經過Maven打包,而後構建相應的Tomcat鏡像,並啓動容器tomcat


1、準備GitOsc:bash

1.準備項目文件maven

wKioL1iX42Xi8uUhAAEvCdx9QAk914.png

2.準備GitOscide

wKiom1iX44awCqKeAAGhAA17GJQ685.png

注:ui

提示輸入用戶名和密碼的時候,用戶名使用完整的郵箱名spa

 

3.上傳原始文件3d

git add *

git commit -m "AddFile"

git push origin master

wKiom1iX46WheebHAAEaY-OPYY8914.png

 

2、配置Jenkins:

wKiom1iX48bi-SJQAAH8BPARBuk533.png

 

wKioL1iX4-bRrGMKAAEXe60_Jis969.png

 

wKioL1iX5AXBA8oLAAIHHT7_nj0485.png

 

wKiom1iX5DHCrOjgAAEnUsZj2yI273.png

 

wKioL1iX5EvD6TnsAAF4Wh9fmrA864.png

 

wKiom1iX5G7z2LGWAAJ6QqpUVTg619.png

 

wKiom1iX5IqgTpALAAGPCvpp1N0284.png

 

wKioL1iX5KbDZLVRAAGzp-BvoX8515.png

 

wKiom1iX5NrgQ9bOAAE6OPtNqEY316.png

wKioL1iX5P6CN1wmAAFtVl49yig228.png

 

3、在GitOsc上配置PUSH鉤子:

wKiom1iX5VWjVPOjAAG6_ao0w4Y036.png

http://ghx:63919fc15e0b82c9b8c3ac47af8dabbd@180.172.232.87:9999/job/test-hello/build?token=test-token

//必須使用Jenkins的公網IP,注意映射9999端口和50000端口

 

4、修改hello項目的源代碼,並pushGitOsc上:

1.修改源代碼

wKiom1iX5XmhA650AAJj3BsfUx4158.png

 

2.上傳新文件

git add *

wKioL1iX5ZuwtlyDAAI_WzOHG5g690.png

 

git commit -m "Add newfile"

git push

 

 

效果:

wKiom1iX5c3A4SpZAAteNvJIHmY115.png

wKioL1iX5eqTN8tdAADlbbAI3NI813.png

 

 

wKiom1iX5gyAlSQLAAmrEf2yt04359.png

wKioL1iX5iqyaTE7AADo1Jnyh4U810.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 p_w_picpaths$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 p_w_picpaths 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.最後向臨時文件中傳入累計數,供下次任務使用

相關文章
相關標籤/搜索