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