microservices/docker-gitlink/auto_redeploy.sh

323 lines
6.9 KiB
Bash
Executable File
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/bin/sh
# 获取当前路径
orgin_path=`pwd`
current_env=$1
server_name=$3
# 使用说明,用来提示输入参数
usage() {
echo -e "\e[91m错误必须传入环境参数 \e[0m"
echo "Usage: sh auto_redeploy.sh [test|prod] [modules|zone_front]"
exit 1
}
check_success(){
# 打印提示信息
echo "服务开始启动,监听服务是否启动完成,容器名称:$1"
# 开始监听容器日志
docker logs -f $1 | while read -r log_line
do
# 检查日志中是否包含"启动成功"
if [ -n "$(echo "$log_line" | grep "启动成功")" ]; then
# 打印包含"启动成功"的日志
echo "$log_line"
# 获取docker logs进程ID并终止
logs_pid=$(pgrep -P $$ -o -f "docker logs -f $1")
[ -n "$logs_pid" ] && kill "$logs_pid"
break
fi
done
}
modules(){
echo "拉取最新代码"
git pull
echo "进行Maven编译"
./build.sh "$current_env" build_maven
echo "拷贝Jar包"
./copy.sh "$current_env" copy_jar
echo "生成Dockerfile"
./build.sh "$current_env" gen_dockerfile
echo "重新编译modules"
./deploy.sh "$current_env" build_modules
echo "停止modules服务"
./deploy.sh "$current_env" stop_modules
echo "删除已停止的服务"
./deploy.sh "$current_env" rm
echo "启动modules服务"
./deploy.sh "$current_env" modules
check_success gitlink-auth
check_success gitlink-gateway
check_success gitlink-modules-cms
check_success gitlink-modules-system
check_success gitlink-modules-file
check_success gitlink-modules-zone
}
zone_front(){
echo "自动部署前端"
echo "进行前端编译"
./build.sh "$current_env" build_zone_front
echo "拷贝前端文件"
./copy.sh "$current_env" copy_zone_front
docker restart gitlink-nginx
}
zone(){
echo "拉取最新代码"
git pull
echo "进行Maven编译"
./build.sh "$current_env" build_maven ruoyi-modules/ruoyi-zone
echo "拷贝Jar包"
./copy.sh "$current_env" copy_zone
echo "重新编译modules"
./deploy.sh "$current_env" build_modules gitlink-modules-zone
echo "停止modules服务"
./deploy.sh "$current_env" stop_modules gitlink-modules-zone
sleep 2
echo "检查zone服务是否已停止"
docker ps -a|grep "gitlink-modules-zone"
echo "删除已停止的服务"
./deploy.sh "$current_env" rm gitlink-modules-zone
echo "启动modules服务"
./deploy.sh "$current_env" modules gitlink-modules-zone
check_success gitlink-modules-zone
}
file(){
echo "拉取最新代码"
git pull
echo "进行Maven编译"
./build.sh "$current_env" build_maven ruoyi-modules/ruoyi-file
echo "拷贝Jar包"
./copy.sh "$current_env" copy_file
echo "重新编译modules"
./deploy.sh "$current_env" build_modules gitlink-modules-file
echo "停止modules服务"
./deploy.sh "$current_env" stop_modules gitlink-modules-file
sleep 2
echo "检查file服务是否已停止"
docker ps -a|grep "gitlink-modules-file"
echo "删除已停止的服务"
./deploy.sh "$current_env" rm gitlink-modules-file
echo "启动modules服务"
./deploy.sh "$current_env" modules gitlink-modules-file
check_success gitlink-modules-file
}
system(){
echo "拉取最新代码"
git pull
echo "进行Maven编译"
./build.sh "$current_env" build_maven ruoyi-modules/ruoyi-system
echo "拷贝Jar包"
./copy.sh "$current_env" copy_system
echo "重新编译modules"
./deploy.sh "$current_env" build_modules gitlink-modules-system
echo "停止modules服务"
./deploy.sh "$current_env" stop_modules gitlink-modules-system
sleep 2
echo "检查system服务是否已停止"
docker ps -a|grep "gitlink-modules-system"
echo "删除已停止的服务"
./deploy.sh "$current_env" rm gitlink-modules-system
echo "启动modules服务"
./deploy.sh "$current_env" modules gitlink-modules-system
check_success gitlink-modules-system
}
cms(){
echo "拉取最新代码"
git pull
echo "进行Maven编译"
./build.sh "$current_env" build_maven ruoyi-modules/ruoyi-cms
echo "拷贝Jar包"
./copy.sh "$current_env" copy_cms
echo "重新编译modules"
./deploy.sh "$current_env" build_modules gitlink-modules-cms
echo "停止modules服务"
./deploy.sh "$current_env" stop_modules gitlink-modules-cms
sleep 2
echo "检查cms服务是否已停止"
docker ps -a|grep "gitlink-modules-cms"
echo "删除已停止的服务"
./deploy.sh "$current_env" rm gitlink-modules-cms
echo "启动modules服务"
./deploy.sh "$current_env" modules gitlink-modules-cms
check_success gitlink-modules-cms
}
gateway(){
echo "拉取最新代码"
git pull
echo "进行Maven编译"
./build.sh "$current_env" build_maven ruoyi-gateway
echo "拷贝Jar包"
./copy.sh "$current_env" copy_gateway
echo "重新编译modules"
./deploy.sh "$current_env" build_modules gitlink-gateway
echo "停止modules服务"
./deploy.sh "$current_env" stop_modules gitlink-gateway
sleep 2
echo "检查gateway服务是否已停止"
docker ps -a|grep "gitlink-gateway"
echo "删除已停止的服务"
./deploy.sh "$current_env" rm gitlink-gateway
echo "启动modules服务"
./deploy.sh "$current_env" modules gitlink-gateway
check_success gitlink-gateway
}
auth(){
echo "拉取最新代码"
git pull
echo "进行Maven编译"
./build.sh "$current_env" build_maven ruoyi-auth
echo "拷贝Jar包"
./copy.sh "$current_env" copy_auth
echo "重新编译modules"
./deploy.sh "$current_env" build_modules gitlink-auth
echo "停止modules服务"
./deploy.sh "$current_env" stop_modules gitlink-auth
sleep 2
echo "检查auth服务是否已停止"
docker ps -a|grep "gitlink-auth"
echo "删除已停止的服务"
./deploy.sh "$current_env" rm gitlink-auth
echo "启动modules服务"
./deploy.sh "$current_env" modules gitlink-auth
check_success gitlink-auth
}
pms(){
echo "拉取最新代码"
git pull
echo "进行Maven编译"
./build.sh "$current_env" build_maven ruoyi-modules/ruoyi-pms
echo "拷贝Jar包"
./copy.sh "$current_env" copy_pms
echo "重新编译modules"
./deploy.sh "$current_env" build_modules gitlink-modules-pms
echo "停止modules服务"
./deploy.sh "$current_env" stop_modules gitlink-modules-pms
sleep 2
echo "检查pms服务是否已停止"
docker ps -a|grep "gitlink-modules-pms"
echo "删除已停止的服务"
./deploy.sh "$current_env" rm gitlink-modules-pms
echo "启动modules服务"
./deploy.sh "$current_env" modules gitlink-modules-pms
check_success gitlink-modules-pms
}
case "$current_env" in
"test")
# 获取测试环境配置文件中的安装信息
. ./test_config.profile
;;
"prod")
. ./prod_config.profile
;;
*)
usage
;;
esac
# 根据输入参数,选择执行对应方法,不输入则执行使用说明
case "$2" in
"modules")
modules
;;
"zone_front")
zone_front
;;
"zone")
zone
;;
"system")
system
;;
"cms")
cms
;;
"pms")
pms
;;
"file")
file
;;
"gateway")
gateway
;;
"auth")
auth
;;
*)
usage
;;
esac