forked from Gitlink/microservices
323 lines
6.9 KiB
Bash
Executable File
323 lines
6.9 KiB
Bash
Executable File
#!/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 |