Docker自動部署tomcat程序腳本

1. 支持自定義war包部署

2. 支持自定義容器過期時(shí)間

展示效果如下圖:


腳本內(nèi)如下:

#!/bin/bash

set -e

#彩色字體

Color_Text()

{

echo -e " \e[0;$2m$1\e[0m"

}

Echo_Yellow()

{

echo "$(Color_Text "$1" "33")"

}

Echo_Yellown()

{

echo -n "$(Color_Text "$1" "33")"

}

Echo_Red()

{

echo "$(Color_Text "$1" "31")"

}

Echo_Green()

{

echo "$(Color_Text "$1" "32")"

}

Echo_Pink()

{

echo "$(Color_Text "$1" "45")"

}

#檢查war包是否存在

check_war_name()

{

set +e

if [ -f /tmp/wars/${war_name} ];then

echo '' > /dev/null

else

Echo_Yellow? "? ${war_name} 不存在,請確認(rèn)您是否已上傳至 /tmp/wars 目錄內(nèi) . "

Echo_Yellow? "? 如未上傳暂雹,請按 Ctrl + C 退出腳本觉阅,上傳后重新執(zhí)行此腳本"

Echo_Yellow? "? 如已上傳,請確認(rèn) war包 名字 ."

Echo_Yellown "? 請重新輸入 -- war包名字 :"

read war_name

check_war_name

fi

set -e

}

#獲取war包名字

get_war_name()

{

echo ''

? ? Echo_Yellow? "? 請確認(rèn)您已上傳war包 至 /tmp/wars 目錄內(nèi). "

Echo_Yellow? "? 請輸入您將要部署的 war包 名字? (例如: test.war ) . "

Echo_Yellown "? 請輸入 :? "

read war_name

check_war_name

echo ''

}

#檢查tomcat實(shí)例名

check_tomcat_name()

{

? ? set +e

? ? if [ -z ${tomcat_name} ];then

? ? ? ? ? ? Echo_Yellown "? 輸入為空或者不合法,請重新輸入 -- Tomcat 實(shí)例名:"

? ? ? ? ? ? read tomcat_name

? ? ? ? ? ? check_tomcat_name

? ? elif [ ${#tomcat_name} -lt 2 ]; then

? ? ? ? ? ? Echo_Yellown "? 請輸入2位及以上的 Tomcat 實(shí)例名逆皮,請重新輸入 -- Tomcat 實(shí)例名:"

? ? ? ? ? ? read tomcat_name

? ? ? ? ? ? check_tomcat_name

? ? else

? ? ? ? docker ps |grep " ${tomcat_name}$" >/dev/null 2>&1

? ? ? ? if [ $? -eq 0 ];then

? ? ? ? ? ? Echo_Yellown "? Tomcat 實(shí)例名 已存在由蘑,請重新輸入 -- Tomcat 實(shí)例名:"

? ? ? ? ? ? read tomcat_name

? ? ? ? ? ? check_tomcat_name

? ? ? ? fi

? ? fi

? ? set -e

}

#獲取tomcat實(shí)例名

get_tomcat_name()

{

? ? echo ''

? ? Echo_Yellow "? Tomcat 實(shí)例名 建議3個字符以上(可用英文和數(shù)字,可以和 war包 名相同).? "

? ? Echo_Yellown "? 請輸入 -- Tomcat 實(shí)例名: "

? ? read tomcat_name

? ? check_tomcat_name

? ? echo ''

}

#標(biāo)記信息

sign()

{

Echo_Yellown "? 請按 Enter鍵 開始創(chuàng)建,退出請按 Ctrl + C .? "

read var

echo ''

}

#容器創(chuàng)建

create_tomcat()

{

set +e

tomcat_image="jixson/tomcat:${tomcat_version}"

docker run -d --network mac_net -v /tmp/wars/${war_name}:/tomcat/webapps/${war_name} --name ${tomcat_name}? ${tomcat_image} >/dev/null 2>&1

? ? sleep 1s

docker ps |grep " ${tomcat_name}$" >/dev/null 2>&1

if [ $? -eq 0 ];then

docker_id=$(docker ps |grep " ${tomcat_name}$" | awk '{print $1}')

docker_ip=$(docker inspect ${docker_id} |grep -A 80 "NetworkSettings" | grep -A 50 "Networks" |grep "IPAddress" | awk -F'"' '{print $4}')

else

Echo_Red "? 容器創(chuàng)建失敗帮碰,請 檢查配置文件 或 聯(lián)系運(yùn)維相味!"

exit 1

fi

set -e

}

#清理無用容器,添加定時(shí)任務(wù)

docker_clear()

{

at now + ${save_time} days <<< "/usr/bin/docker stop ${tomcat_name} && /usr/bin/docker rm ${tomcat_name}" >/dev/null 2>&1

docker rm $(docker ps -a -q) >/dev/null 2>&1

}

#tomcat版本信息

tomcat_info_version()

{

echo ''

Echo_Green "? ? ? ? ? ? +-------------------------------------------+"

Echo_Green "? ? ? ? ? ? |? Java_Version: 1.8.0_74? ? ? ? ? ? ? ? ? |"

Echo_Green "? ? ? ? ? ? |? Tomcat_Version: ${tomcat_version}? ? ? ? ? ? ? ? ? |"

Echo_Green "? ? ? ? ? ? |? Os: Linux 5.3.8-1.el7.elrepo.x86_64? ? |"

Echo_Green "? ? ? ? ? ? +-------------------------------------------+"

? ? echo ''

? ? echo -n '? ? '

? ? Echo_Pink " +--------------------------------------------------------------+ "

? ? echo -n '? ? '

? ? Echo_Pink " |? ? 注意: 此Tomcat未做持久化殉挽,容器刪除后數(shù)據(jù)將清空7嵘妗M厍伞!? ? | "

? ? echo -n '? ? '

? ? Echo_Pink " +--------------------------------------------------------------+ "

? ? echo ''

? ? Echo_Yellown "? 請按 Enter 鍵一死,確認(rèn)繼續(xù)."

? ? read var

? ? echo ''

}

#tomcat創(chuàng)建信息

tomcat_create_info()

{

Echo_Yellow "? 您創(chuàng)建的 Tomcat 信息如下肛度,請牢記:"

echo ''

Echo_Yellow "? ? ? Tomcat 實(shí)例名: ${tomcat_name}"

echo ''

Echo_Yellow "? ? ? Tomcat IP: ${docker_ip} "

echo ''

Echo_Yellow "? ? ? Tomcat 服務(wù)端口: 8080"

echo ''

echo -n '? ? '

Echo_Pink " 此實(shí)例將于? ${save_time} 天? 后自動刪除,請注意本地保存數(shù)據(jù)M洞取3泄ⅰ!"

? ? echo ''

? ? echo ''

}

#容器保留時(shí)間

save_time()

{

echo ''

? ? Echo_Red "? 1:? 10 天? (Default)"

? ? Echo_Red "? 2:? 30 天"

? ? Echo_Red "? 3:? 60 天"

? ? Echo_Yellown "? 請選擇實(shí)例使用時(shí)間? (輸入對應(yīng)數(shù)字即可 ):? "

? ? read save_time

? ? echo ''

? ? case "${save_time}" in

? ? 1)

? ? ? ? Echo_Yellow "? Tomcat 實(shí)例使用時(shí)間限制:? 10 天"

? ? ? ? export save_time="10"

? ? ;;

? ? 2)

? ? ? ? Echo_Yellow "? Tomcat 實(shí)例使用時(shí)間限制:? 30 天"

? ? ? ? export save_time="30"

? ? ;;

? ? 3)

? ? ? ? Echo_Yellow "? Tomcat 實(shí)例使用時(shí)間限制:? 60 天"

? ? ? ? export save_time="60"

? ? ;;

? ? *)

? ? ? ? Echo_Yellow "? 未輸入有效選項(xiàng)逛裤,默認(rèn) Tomcat 實(shí)例使用時(shí)間限制:? 10 天"

? ? ? ? export save_time="10"

? ? ;;

? ? esac

}

#tomcat版本選擇

tomcat_version_select()

{

echo ''

? ? Echo_Red "? 1:? tomcat_version:8.0.9? (Default)"

? ? Echo_Red "? 2:? tomcat_version:8.5.4"

? ? Echo_Yellown "? 請選擇 Tomcat Version? (輸入對應(yīng)數(shù)字即可 ):? "

? ? read tomcat_version_select

? ? echo ''

? ? case "${tomcat_version_select}" in

? ? 1)

? ? ? ? Echo_Yellow "? 您選擇的 Tomcat版本 是:? 8.0.9"

? ? ? ? export tomcat_version="8.0.9"

? ? ? ? tomcat_info_version

? ? ? ? save_time

? ? ;;

? ? 2)

? ? ? ? Echo_Yellow "? 您選擇的 Tomcat版本 是:? 8.5.4"

? ? ? ? export tomcat_version="8.5.4"

? ? ? ? tomcat_info_version

? ? ? ? save_time

? ? ;;

? ? *)

? ? ? ? Echo_Yellow "? 未輸入有效選項(xiàng)瘩绒,默認(rèn) Tomcat版本 : 8.0.9"

? ? ? ? export tomcat_version="8.0.9"

? ? ? ? tomcat_info_version

? ? ? ? save_time

? ? ;;

? ? esac

}

clear

#腳本入口

create()

{

tomcat_version_select

get_war_name

? ? get_tomcat_name

sign

create_tomcat

tomcat_create_info

docker_clear

}

create



?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市带族,隨后出現(xiàn)的幾起案子锁荔,更是在濱河造成了極大的恐慌,老刑警劉巖蝙砌,帶你破解...
    沈念sama閱讀 216,591評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件阳堕,死亡現(xiàn)場離奇詭異,居然都是意外死亡择克,警方通過查閱死者的電腦和手機(jī)恬总,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,448評論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來肚邢,“玉大人壹堰,你說我怎么就攤上這事÷夂” “怎么了贱纠?”我有些...
    開封第一講書人閱讀 162,823評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長响蕴。 經(jīng)常有香客問我谆焊,道長,這世上最難降的妖魔是什么浦夷? 我笑而不...
    開封第一講書人閱讀 58,204評論 1 292
  • 正文 為了忘掉前任辖试,我火速辦了婚禮,結(jié)果婚禮上劈狐,老公的妹妹穿的比我還像新娘罐孝。我一直安慰自己,他們只是感情好肥缔,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,228評論 6 388
  • 文/花漫 我一把揭開白布肾档。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪怒见。 梳的紋絲不亂的頭發(fā)上俗慈,一...
    開封第一講書人閱讀 51,190評論 1 299
  • 那天,我揣著相機(jī)與錄音遣耍,去河邊找鬼闺阱。 笑死,一個胖子當(dāng)著我的面吹牛舵变,可吹牛的內(nèi)容都是我干的酣溃。 我是一名探鬼主播,決...
    沈念sama閱讀 40,078評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼纪隙,長吁一口氣:“原來是場噩夢啊……” “哼赊豌!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起绵咱,我...
    開封第一講書人閱讀 38,923評論 0 274
  • 序言:老撾萬榮一對情侶失蹤碘饼,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后悲伶,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體艾恼,經(jīng)...
    沈念sama閱讀 45,334評論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,550評論 2 333
  • 正文 我和宋清朗相戀三年麸锉,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了钠绍。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,727評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡花沉,死狀恐怖柳爽,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情碱屁,我是刑警寧澤泻拦,帶...
    沈念sama閱讀 35,428評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站忽媒,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏腋粥。R本人自食惡果不足惜晦雨,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,022評論 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望隘冲。 院中可真熱鬧闹瞧,春花似錦、人聲如沸展辞。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,672評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至洽腺,卻和暖如春脚粟,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背蘸朋。 一陣腳步聲響...
    開封第一講書人閱讀 32,826評論 1 269
  • 我被黑心中介騙來泰國打工核无, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人藕坯。 一個月前我還...
    沈念sama閱讀 47,734評論 2 368
  • 正文 我出身青樓团南,卻偏偏與公主長得像,于是被迫代替她去往敵國和親炼彪。 傳聞我的和親對象是個殘疾皇子吐根,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,619評論 2 354

推薦閱讀更多精彩內(nèi)容