jenkis自動化部署docker容器指令碼
阿新 • • 發佈:2019-02-15
#!/bin/bash #author xuejp #date 2017-03-28 ITEM_NAME="anloq-node-zhengshi" #專案名字 IMG_MANGER="192.168.0.122:5000" #私有映象地址 DATE=`date +%F-%H-%M-%S` #當前時間 PROJECT_NAME=`echo "$ITEM_NAME-$DATE"` #回滾用的映象名稱 FPATH="./delopy_scripts" #工作目錄 #利用dockfile構建映象 docker build -t --rm $IMG_MANGER/node:v1.0 . #推送映象 docker push $IMG_MANGER/node:v1.0 #判斷是否回滾過 if cat $FPATH/ROOLBACK;then NAMES=`cat $FPATH/PROJECT_NAME` docker stop $NAMES docker run -ti -d --name $ITEM_NAME $IMG_MANGER/node:v1.0 rm -rf $FPATH/ROOLBACK #判斷專案是否在執行 elif docker ps |grep anloq-node-zhengshi |awk {'print $(NF)'} | grep -Fx $ITEM_NAME;then docker stop $ITEM_NAME docker rename $ITEM_NAME $PROJECT_NAME docker run -ti -d --name $ITEM_NAME $IMG_MANGER/node:v1.0 #docker rmi -f`docker images | grep "<none>" | awk "{print \$3}"` #判斷專案是否存在 elif docker ps -a |grep anloq-node-zhengshi |awk {'print $(NF)'} | grep -Fx $ITEM_NAME ;then docker start $ITEM_NAME #執行映象 else docker run -ti -d --name $ITEM_NAME $IMG_MANGER/node:v1.0 fi #將專案全稱存入檔案,留著回滾用 echo $PROJECT_NAME >$FPATH/PROJECT_NAME
只需要在jenkins專案配置裡面寫入即可
下面是回滾指令碼 目前只能回滾一個版本,有需要的可以參考下
#!/bin/bash
#auth xuejp
#date 2017-03-28
ITEM_NAME=”anloq-node-zhengshi”
ROLL_NAME=cat ./delopy_scripts/PROJECT_NAME
DATE=date +%F-%H-%M-%S
docker stop
docker start $ROLL_NAME
echo 1 > ./delopy_scripts/ROOLBACK