Files
kt-financial-system/deploy.sh
你的用户名 b68511b2e2
Some checks failed
Deploy to Production / Build and Test (push) Successful in 10m51s
Deploy to Production / Deploy to Server (push) Failing after 6m41s
feat: migrate backend storage to postgres
2025-11-06 22:01:50 +08:00

123 lines
3.4 KiB
Bash
Executable File
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/bin/bash
# KT财务系统部署脚本
# 使用方法: ./deploy.sh
set -e
SERVER_IP="172.16.74.149"
SERVER_USER="atai"
SERVER_PASS="wengewudi666808"
DEPLOY_PATH="/home/atai/kt-financial-system"
REPO_URL="https://gitea.ktyun.cc/chenjiangjiang/kt-financial-system.git"
echo "=== KT财务系统自动部署 ==="
echo "目标服务器: $SERVER_IP"
echo "部署路径: $DEPLOY_PATH"
echo ""
# 使用sshpass进行SSH连接如果没有安装sshpass会提示安装
if ! command -v sshpass &> /dev/null; then
echo "⚠️ sshpass 未安装"
echo "MacOS安装: brew install hudochenkov/sshpass/sshpass"
echo "Linux安装: sudo apt-get install sshpass"
exit 1
fi
echo "📦 开始部署..."
sshpass -p "$SERVER_PASS" ssh -o StrictHostKeyChecking=no $SERVER_USER@$SERVER_IP << 'ENDSSH'
set -e
# 切换到部署目录
cd /home/atai
# 检查Docker是否安装
if ! command -v docker &> /dev/null; then
echo "❌ Docker未安装正在安装..."
curl -fsSL https://get.docker.com | sh
sudo usermod -aG docker $USER
echo "✅ Docker安装完成"
fi
# 检查docker-compose是否安装
if ! command -v docker-compose &> /dev/null; then
echo "❌ docker-compose未安装正在安装..."
sudo curl -L "https://github.com/docker/compose/releases/download/v2.23.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
echo "✅ docker-compose安装完成"
fi
# 克隆或更新代码
if [ ! -d "kt-financial-system" ]; then
echo "📥 克隆代码仓库..."
git clone https://gitea.ktyun.cc/chenjiangjiang/kt-financial-system.git
else
echo "📥 更新代码..."
cd kt-financial-system
git pull origin main
cd ..
fi
cd kt-financial-system
# 停止旧容器
echo "🛑 停止旧容器..."
sudo docker-compose down || true
# 构建并启动新容器
echo "🚀 构建并启动新容器..."
sudo docker-compose up -d --build
# 等待PostgreSQL就绪
echo "⏳ 等待PostgreSQL就绪..."
POSTGRES_READY=0
for i in {1..10}; do
if sudo docker-compose exec -T postgres pg_isready -U kt_financial -d kt_financial > /dev/null 2>&1; then
echo "✅ PostgreSQL 已就绪"
POSTGRES_READY=1
break
fi
echo " 第${i}次重试..."
sleep 3
done
if [ "$POSTGRES_READY" -ne 1 ]; then
echo "❌ PostgreSQL 未在预期时间内就绪"
exit 1
fi
# 导入数据
echo "📦 导入财务数据..."
sudo docker-compose exec -T kt-financial \
bash -lc "pnpm --filter @vben/backend import:data -- --csv /app/data/finance/finance-combined.csv --year 2025"
# 验证数据条数
echo "🔢 检查交易记录条数..."
sudo docker-compose exec -T postgres \
psql -U kt_financial -d kt_financial -c "SELECT COUNT(*) AS transaction_count FROM finance_transactions;"
# 清理旧镜像
echo "🧹 清理旧镜像..."
sudo docker image prune -f
# 显示容器状态
echo ""
echo "✅ 部署完成!"
echo ""
echo "📊 容器状态:"
sudo docker-compose ps
echo ""
echo "📝 查看日志:"
echo "docker-compose logs -f"
ENDSSH
echo ""
echo "🎉 部署成功!"
echo "🌐 访问地址: http://$SERVER_IP:8080"
echo ""
echo "📝 常用命令:"
echo " 查看日志: ssh $SERVER_USER@$SERVER_IP 'cd $DEPLOY_PATH && docker-compose logs -f'"
echo " 重启服务: ssh $SERVER_USER@$SERVER_IP 'cd $DEPLOY_PATH && docker-compose restart'"
echo " 停止服务: ssh $SERVER_USER@$SERVER_IP 'cd $DEPLOY_PATH && docker-compose down'"