保留最新代码,清除历史记录

This commit is contained in:
vipg
2025-10-09 18:19:57 +08:00
commit b44e40f25d
77 changed files with 4115 additions and 0 deletions

82
deploy/deploy.sh Normal file
View File

@@ -0,0 +1,82 @@
#!/bin/bash
set -e # 遇到错误立即退出,确保部署流程的可靠性
# 颜色输出配置(增强可读性)
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
NC='\033[0m' # 重置颜色
COMPOSE_PROJECT_NAME="user_service"
DOCKER_COMPOSE_FILE="./docker-compose.yaml"
API_DIR="./api" # API服务所在目录
# 步骤1停止指定名称的docker-compose编排
echo -e "${YELLOW}===== 第一步:停止编排名称为 $COMPOSE_PROJECT_NAME 的服务 ====="${NC}
if [ -f "$DOCKER_COMPOSE_FILE" ]; then
echo "正在停止服务..."
docker-compose -f "$DOCKER_COMPOSE_FILE" -p "$COMPOSE_PROJECT_NAME" down
if [ $? -eq 0 ]; then
echo -e "${GREEN}编排 $COMPOSE_PROJECT_NAME 已成功停止${NC}"
else
echo -e "${RED}停止编排 $COMPOSE_PROJECT_NAME 失败!${NC}"
exit 1
fi
else
echo -e "${RED}错误:未找到 $DOCKER_COMPOSE_FILE 文件${NC}"
exit 1
fi
# 步骤2处理所有API服务的release.sh
echo -e "\n${YELLOW}===== 第二步执行所有API服务的构建脚本 ====="${NC}
if [ -d "$API_DIR" ]; then
# 遍历API目录下的所有子文件夹
for api_folder in "$API_DIR"/*/; do
# 检查是否为目录
if [ -d "$api_folder" ]; then
# 提取文件夹名称(用于日志显示)
folder_name=$(basename "$api_folder")
echo -e "\n${YELLOW}处理服务: $folder_name${NC}"
# 检查release.sh是否存在
release_script="${api_folder}/release.sh"
if [ -f "$release_script" ]; then
echo "给予 $release_script 执行权限..."
chmod +x "$release_script"
echo "执行 $release_script ..."
(cd "$api_folder" && ./release.sh) # 进入目录并执行脚本
if [ $? -eq 0 ]; then
echo -e "${GREEN}$folder_name 服务构建完成${NC}"
else
echo -e "${RED}$folder_name 服务构建失败!${NC}"
exit 1
fi
else
echo -e "${YELLOW}警告:$api_folder 中未找到 release.sh跳过该目录${NC}"
fi
fi
done
else
echo -e "${RED}错误:未找到 $API_DIR 目录${NC}"
exit 1
fi
# 步骤3启动指定名称的docker-compose编排
echo -e "\n${YELLOW}===== 第三步:启动编排名称为 $COMPOSE_PROJECT_NAME 的服务 ====="${NC}
if [ -f "$DOCKER_COMPOSE_FILE" ]; then
echo "正在启动服务..."
docker-compose -f "$DOCKER_COMPOSE_FILE" -p "$COMPOSE_PROJECT_NAME" up -d
if [ $? -eq 0 ]; then
echo -e "${GREEN}编排 $COMPOSE_PROJECT_NAME 启动成功!${NC}"
else
echo -e "${RED}启动编排 $COMPOSE_PROJECT_NAME 失败!${NC}"
exit 1
fi
else
echo -e "${RED}错误:未找到 $DOCKER_COMPOSE_FILE 文件${NC}"
exit 1
fi
echo -e "\n${GREEN}===== 所有部署步骤已完成 ====="${NC}