add
This commit is contained in:
93
deploy/user_service/deploy.sh
Normal file
93
deploy/user_service/deploy.sh
Normal file
@@ -0,0 +1,93 @@
|
||||
#!/bin/bash
|
||||
set -e # 遇到错误立即退出,确保部署流程的可靠性
|
||||
|
||||
# 颜色输出配置(增强可读性)
|
||||
RED='\033[0;31m'
|
||||
GREEN='\033[0;32m'
|
||||
YELLOW='\033[1;33m'
|
||||
NC='\033[0m' # 重置颜色
|
||||
|
||||
# 步骤1:停止当前运行的 docker-compose 编排
|
||||
echo -e "${YELLOW}===== 第一步:停止当前 docker-compose 服务 ====="${NC}
|
||||
if [ -f "./docker-compose.yaml" ]; then
|
||||
echo "正在停止现有服务..."
|
||||
docker-compose -f ./docker-compose.yaml down
|
||||
if [ $? -eq 0 ]; then
|
||||
echo -e "${GREEN}现有 docker-compose 服务已成功停止${NC}"
|
||||
else
|
||||
echo -e "${RED}停止 docker-compose 服务失败!${NC}"
|
||||
exit 1
|
||||
fi
|
||||
else
|
||||
echo -e "${RED}错误:未找到当前目录下的 docker-compose.yaml 文件${NC}"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 步骤2:遍历 api_ 开头的目录并执行 release.sh
|
||||
echo -e "\n${YELLOW}===== 第二步:处理 api_ 开头的服务目录 ====="${NC}
|
||||
for dir in ./api_*/; do
|
||||
# 提取目录名称(移除路径和末尾斜杠)
|
||||
dir_name=$(basename "${dir%/}")
|
||||
|
||||
# 步骤3:跳过 api_template 目录
|
||||
if [ "$dir_name" = "api_template" ]; then
|
||||
echo -e "${YELLOW} 跳过目录:$dir_name${NC}"
|
||||
continue
|
||||
fi
|
||||
|
||||
# 检查目录是否有效
|
||||
if [ ! -d "$dir" ]; then
|
||||
echo -e "${RED} 警告:$dir 不是有效目录,已跳过${NC}"
|
||||
continue
|
||||
fi
|
||||
|
||||
echo -e "\n处理目录:$dir_name"
|
||||
# 进入目标目录
|
||||
cd "$dir" || {
|
||||
echo -e "${RED} 错误:无法进入目录 $dir_name${NC}"
|
||||
exit 1
|
||||
}
|
||||
|
||||
# 检查并执行 release.sh
|
||||
if [ -f "release.sh" ]; then
|
||||
# 添加执行权限
|
||||
chmod +x release.sh
|
||||
echo " 已为 release.sh 添加执行权限"
|
||||
|
||||
# 执行脚本
|
||||
echo " 正在执行 release.sh..."
|
||||
./release.sh
|
||||
if [ $? -eq 0 ]; then
|
||||
echo -e " ${GREEN}release.sh 执行成功${NC}"
|
||||
else
|
||||
echo -e " ${RED}release.sh 执行失败!${NC}"
|
||||
exit 1
|
||||
fi
|
||||
else
|
||||
echo -e "${YELLOW} 警告:目录 $dir_name 中未找到 release.sh,已跳过${NC}"
|
||||
fi
|
||||
|
||||
# 返回上级目录,继续处理其他目录
|
||||
cd .. || {
|
||||
echo -e "${RED} 错误:无法返回上级目录${NC}"
|
||||
exit 1
|
||||
}
|
||||
done
|
||||
|
||||
# 步骤4:启动新的 docker-compose 编排
|
||||
echo -e "\n${YELLOW}===== 第三步:启动新的 docker-compose 服务 ====="${NC}
|
||||
if [ -f "./docker-compose.yaml" ]; then
|
||||
echo "正在启动服务..."
|
||||
docker-compose -f ./docker-compose.yaml up -d
|
||||
if [ $? -eq 0 ]; then
|
||||
echo -e "${GREEN}docker-compose 服务启动成功!${NC}"
|
||||
else
|
||||
echo -e "${RED}启动 docker-compose 服务失败!${NC}"
|
||||
exit 1
|
||||
fi
|
||||
else
|
||||
echo -e "${RED}错误:未找到当前目录下的 docker-compose.yaml 文件${NC}"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo -e "\n${GREEN}===== 所有部署步骤已完成 ====="${NC}
|
Reference in New Issue
Block a user