Docker自動部署tomcat程序腳本

1. 支持自定義war包部署

2. 支持自定義容器過期時間

展示效果如下圖:


腳本內(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} 不存在,請確認您是否已上傳至 /tmp/wars 目錄內(nèi) . "

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

Echo_Yellow? "? 如已上傳,請確認 war包 名字 ."

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

read war_name

check_war_name

fi

set -e

}

#獲取war包名字

get_war_name()

{

echo ''

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

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

Echo_Yellown "? 請輸入 :? "

read war_name

check_war_name

echo ''

}

#檢查tomcat實例名

check_tomcat_name()

{

? ? set +e

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

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

? ? ? ? ? ? read tomcat_name

? ? ? ? ? ? check_tomcat_name

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

? ? ? ? ? ? Echo_Yellown "? 請輸入2位及以上的 Tomcat 實例名,請重新輸入 -- Tomcat 實例名:"

? ? ? ? ? ? read tomcat_name

? ? ? ? ? ? check_tomcat_name

? ? else

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

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

? ? ? ? ? ? Echo_Yellown "? Tomcat 實例名 已存在,請重新輸入 -- Tomcat 實例名:"

? ? ? ? ? ? read tomcat_name

? ? ? ? ? ? check_tomcat_name

? ? ? ? fi

? ? fi

? ? set -e

}

#獲取tomcat實例名

get_tomcat_name()

{

? ? echo ''

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

? ? Echo_Yellown "? 請輸入 -- Tomcat 實例名: "

? ? read tomcat_name

? ? check_tomcat_name

? ? echo ''

}

#標記信息

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)系運維!"

exit 1

fi

set -e

}

#清理無用容器,添加定時任務

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ù)將清空?。?!? ? | "

? ? echo -n '? ? '

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

? ? echo ''

? ? Echo_Yellown "? 請按 Enter 鍵,確認繼續(xù)."

? ? read var

? ? echo ''

}

#tomcat創(chuàng)建信息

tomcat_create_info()

{

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

echo ''

Echo_Yellow "? ? ? Tomcat 實例名: ${tomcat_name}"

echo ''

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

echo ''

Echo_Yellow "? ? ? Tomcat 服務端口: 8080"

echo ''

echo -n '? ? '

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

? ? echo ''

? ? echo ''

}

#容器保留時間

save_time()

{

echo ''

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

? ? Echo_Red "? 2:? 30 天"

? ? Echo_Red "? 3:? 60 天"

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

? ? read save_time

? ? echo ''

? ? case "${save_time}" in

? ? 1)

? ? ? ? Echo_Yellow "? Tomcat 實例使用時間限制:? 10 天"

? ? ? ? export save_time="10"

? ? ;;

? ? 2)

? ? ? ? Echo_Yellow "? Tomcat 實例使用時間限制:? 30 天"

? ? ? ? export save_time="30"

? ? ;;

? ? 3)

? ? ? ? Echo_Yellow "? Tomcat 實例使用時間限制:? 60 天"

? ? ? ? export save_time="60"

? ? ;;

? ? *)

? ? ? ? Echo_Yellow "? 未輸入有效選項,默認 Tomcat 實例使用時間限制:? 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? (輸入對應數(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 "? 未輸入有效選項,默認 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)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容