Files
rent/deploy/scripts/deploy.sh
T
xiaoquan c243300670 feat: 添加 Webhook 部署方案
## 新增文件
- deploy/scripts/deploy.sh - 自动化部署脚本
- deploy/docker/WEBHOOK_SETUP.md - Webhook 配置完整指南

## 方案说明
放弃使用 Gitea Runner(Docker 容器环境限制太多)
改用 Webhook 直接在宿主机上执行部署脚本

## 工作流程
1. git push 触发 Gitea Webhook
2. Webhook 服务调用 deploy.sh
3. 脚本自动 git pull + docker-compose build + up

## 优点
- 简单可靠,不依赖容器环境
- 直接在宿主机执行,有完整的 Docker 访问权限
- 容易调试和维护
- 支持两种 Webhook 方式:webhook 工具或 PHP 脚本

## 配置方式
详见 WEBHOOK_SETUP.md 文档

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-10 18:05:05 +08:00

82 lines
2.2 KiB
Bash

#!/bin/bash
# Gitea Webhook 部署脚本
# 用法:./deploy.sh <branch>
set -e
BRANCH=${1:-test}
PROJECT_DIR="/www/dk_project/dk_app/rent"
REPO_URL="https://gitea.pinzhuhui.com/xiaoquan/rent.git"
echo "========================================="
echo "开始部署 - 分支: $BRANCH"
echo "========================================="
# 1. 初始化或更新代码
if [ ! -d "$PROJECT_DIR" ]; then
echo "首次克隆代码..."
cd /www/dk_project/dk_app
git clone $REPO_URL
cd $PROJECT_DIR
else
echo "更新代码..."
cd $PROJECT_DIR
git fetch origin
git checkout $BRANCH
git pull origin $BRANCH
fi
echo "✅ 代码更新完成"
echo "当前分支: $(git branch --show-current)"
echo "最新提交: $(git log -1 --oneline)"
# 2. 部署
cd $PROJECT_DIR/deploy/docker
if [ "$BRANCH" == "test" ]; then
echo "========================================="
echo "部署到测试环境"
echo "========================================="
# 从环境变量或密钥文件读取
source /root/.env.test 2>/dev/null || true
docker-compose -f docker-compose.test.yml down --remove-orphans
docker-compose -f docker-compose.test.yml build --parallel
docker-compose -f docker-compose.test.yml up -d
docker image prune -f
echo "等待服务启动..."
sleep 10
docker-compose -f docker-compose.test.yml ps
echo "✅ 测试环境部署完成"
elif [ "$BRANCH" == "prod" ]; then
echo "========================================="
echo "部署到生产环境"
echo "========================================="
# 从环境变量或密钥文件读取
source /root/.env.prod 2>/dev/null || true
docker-compose -f docker-compose.prod.yml down --remove-orphans
docker-compose -f docker-compose.prod.yml build --parallel
docker-compose -f docker-compose.prod.yml up -d
docker image prune -f
echo "等待服务启动..."
sleep 10
docker-compose -f docker-compose.prod.yml ps
echo "✅ 生产环境部署完成"
else
echo "❌ 未知分支: $BRANCH"
exit 1
fi
echo "========================================="
echo "部署完成!"
echo "========================================="