feat: 添加 Gitea Actions 自动部署功能
Some checks failed
Deploy BillAI / Deploy to Production (push) Failing after 0s
Some checks failed
Deploy BillAI / Deploy to Production (push) Failing after 0s
This commit is contained in:
62
deploy.sh
Normal file
62
deploy.sh
Normal file
@@ -0,0 +1,62 @@
|
||||
#!/bin/bash
|
||||
# BillAI 部署脚本
|
||||
# 用于手动部署或 Gitea Actions 自动部署
|
||||
|
||||
set -e
|
||||
|
||||
# 颜色输出
|
||||
RED='\033[0;31m'
|
||||
GREEN='\033[0;32m'
|
||||
YELLOW='\033[1;33m'
|
||||
NC='\033[0m' # No Color
|
||||
|
||||
echo -e "${GREEN}=== BillAI 部署开始 ===${NC}"
|
||||
echo "时间: $(date '+%Y-%m-%d %H:%M:%S')"
|
||||
|
||||
# 获取脚本所在目录
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
cd "$SCRIPT_DIR"
|
||||
|
||||
echo -e "\n${YELLOW}[1/4] 拉取最新代码${NC}"
|
||||
git fetch origin master
|
||||
git reset --hard origin/master
|
||||
echo "当前版本: $(git log -1 --format='%h %s')"
|
||||
|
||||
echo -e "\n${YELLOW}[2/4] 构建并部署服务${NC}"
|
||||
docker compose up -d --build --remove-orphans
|
||||
|
||||
echo -e "\n${YELLOW}[3/4] 清理旧镜像${NC}"
|
||||
docker image prune -f
|
||||
|
||||
echo -e "\n${YELLOW}[4/4] 健康检查${NC}"
|
||||
echo "等待服务启动..."
|
||||
sleep 15
|
||||
|
||||
# 检查服务状态(通过 Docker 健康检查状态)
|
||||
check_service() {
|
||||
local name=$1
|
||||
local container=$2
|
||||
local status=$(docker inspect --format='{{.State.Health.Status}}' "$container" 2>/dev/null)
|
||||
if [ "$status" = "healthy" ]; then
|
||||
echo -e " ${GREEN}✓${NC} $name 服务正常"
|
||||
return 0
|
||||
else
|
||||
echo -e " ${RED}✗${NC} $name 服务异常 (状态: $status)"
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
FAILED=0
|
||||
check_service "Web" "billai-web" || FAILED=1
|
||||
check_service "Server" "billai-server" || FAILED=1
|
||||
check_service "Analyzer" "billai-analyzer" || FAILED=1
|
||||
check_service "MongoDB" "billai-mongodb" || FAILED=1
|
||||
|
||||
if [ $FAILED -eq 0 ]; then
|
||||
echo -e "\n${GREEN}=== 部署成功 ===${NC}"
|
||||
exit 0
|
||||
else
|
||||
echo -e "\n${RED}=== 部署失败:部分服务异常 ===${NC}"
|
||||
docker compose ps
|
||||
exit 1
|
||||
fi
|
||||
Reference in New Issue
Block a user