优化
This commit is contained in:
66
deploy/build_local.sh
Executable file
66
deploy/build_local.sh
Executable file
@@ -0,0 +1,66 @@
|
||||
#!/bin/bash
|
||||
# ============================================
|
||||
# Tailchat Sales 本地构建脚本 - 构建 Flutter Web
|
||||
# ============================================
|
||||
set -e
|
||||
|
||||
# ==================== 工具函数 ====================
|
||||
log() {
|
||||
echo "[$(date '+%H:%M:%S')] $1"
|
||||
}
|
||||
|
||||
PROJECT_ROOT="$(dirname "$0")/.."
|
||||
|
||||
# ==================== 构建 Flutter Web ====================
|
||||
build_flutter() {
|
||||
log "🚀 [Flutter Web] 开始构建..."
|
||||
cd $PROJECT_ROOT/client/flutter
|
||||
|
||||
log "1.1 获取依赖..."
|
||||
flutter pub get
|
||||
|
||||
log "1.2 构建 Web..."
|
||||
flutter build web --release --dart-define=ENV=prod
|
||||
|
||||
if [ ! -d "build/web" ]; then
|
||||
log "❌ Flutter Web 构建失败"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
log "✅ Flutter Web 构建完成: client/flutter/build/web/"
|
||||
}
|
||||
|
||||
# ==================== 构建 Tailchat Web ====================
|
||||
build_web() {
|
||||
log "🚀 [Tailchat Web] 开始构建..."
|
||||
cd $PROJECT_ROOT/client/web
|
||||
|
||||
log "2.1 安装依赖..."
|
||||
pnpm install
|
||||
|
||||
log "2.2 构建..."
|
||||
pnpm build
|
||||
|
||||
if [ ! -d "dist" ]; then
|
||||
log "❌ Tailchat Web 构建失败"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
log "✅ Tailchat Web 构建完成: client/web/dist/"
|
||||
}
|
||||
|
||||
# ==================== 主流程 ====================
|
||||
case "$1" in
|
||||
flutter)
|
||||
build_flutter
|
||||
;;
|
||||
web)
|
||||
build_web
|
||||
;;
|
||||
*)
|
||||
build_flutter
|
||||
build_web
|
||||
;;
|
||||
esac
|
||||
|
||||
log "🏁 构建完成!"
|
||||
98
deploy/deploy_server.sh
Executable file
98
deploy/deploy_server.sh
Executable file
@@ -0,0 +1,98 @@
|
||||
#!/bin/bash
|
||||
# ============================================
|
||||
# Tailchat Sales 服务器部署脚本
|
||||
# ============================================
|
||||
set -e
|
||||
|
||||
# ==================== 1. 核心路径配置 ====================
|
||||
PROJECT_DIR="/www/wwwroot/tailchat-sales" # 源码目录
|
||||
FLUTTER_WEB_DIR="/www/wwwroot/tailchat-h5" # Flutter Web 目录
|
||||
TAILCHAT_WEB_DIR="/www/wwwroot/tailchat-web" # Tailchat Web 目录
|
||||
BUILD_LOG="/tmp/tailchat_build_$(date +%Y%m%d).log"
|
||||
|
||||
# ==================== 2. 工具函数 ====================
|
||||
log() {
|
||||
echo "[$(date '+%Y-%m-%d %H:%M:%S')] $1" | tee -a $BUILD_LOG
|
||||
}
|
||||
|
||||
# ==================== 3. 构建并同步前端 ====================
|
||||
sync_frontend() {
|
||||
log "📂 [前端] 开始构建..."
|
||||
|
||||
# Flutter Web - 从 Git 拉取的 build/web 复制(服务器无 Flutter 环境)
|
||||
# 本地需先构建:flutter build web --release --dart-define=ENV=prod
|
||||
# 然后 git add client/flutter/build/web/ && git commit && git push
|
||||
|
||||
log "3.1 同步 Flutter Web..."
|
||||
FLUTTER_BUILD_DIR="$PROJECT_DIR/client/flutter/build/web"
|
||||
if [ -d "$FLUTTER_BUILD_DIR" ]; then
|
||||
mkdir -p $FLUTTER_WEB_DIR
|
||||
rm -rf $FLUTTER_WEB_DIR/*
|
||||
cp -r $FLUTTER_BUILD_DIR/* $FLUTTER_WEB_DIR/
|
||||
log "✅ Flutter Web 同步完成"
|
||||
else
|
||||
log "⚠️ Flutter Web 构建目录不存在,跳过"
|
||||
fi
|
||||
|
||||
# Tailchat Web 构建
|
||||
log "3.2 构建 Tailchat Web..."
|
||||
cd $PROJECT_DIR/client/web
|
||||
pnpm install >> $BUILD_LOG 2>&1
|
||||
pnpm run build >> $BUILD_LOG 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
log "✅ Tailchat Web 构建完成"
|
||||
else
|
||||
log "❌ Tailchat Web 构建失败"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 同步 Tailchat Web
|
||||
WEB_BUILD_DIR="$PROJECT_DIR/client/web/dist"
|
||||
mkdir -p $TAILCHAT_WEB_DIR
|
||||
rm -rf $TAILCHAT_WEB_DIR/*
|
||||
cp -r $WEB_BUILD_DIR/* $TAILCHAT_WEB_DIR/
|
||||
log "✅ Tailchat Web 同步完成"
|
||||
}
|
||||
|
||||
# ==================== 4. 后端部署 ====================
|
||||
deploy_backend() {
|
||||
log "🚀 [后端] 开始部署..."
|
||||
cd $PROJECT_DIR
|
||||
|
||||
log "4.1 同步代码..."
|
||||
git fetch origin
|
||||
git reset --hard origin/main
|
||||
|
||||
log "4.2 重启 Tailchat 服务..."
|
||||
cd $PROJECT_DIR
|
||||
docker-compose down
|
||||
docker-compose up -d --build
|
||||
|
||||
log "4.3 等待服务启动..."
|
||||
sleep 10
|
||||
|
||||
# 检查服务状态
|
||||
if docker-compose ps | grep -q "Up"; then
|
||||
log "✅ Tailchat 服务启动成功"
|
||||
else
|
||||
log "❌ Tailchat 服务启动失败"
|
||||
docker-compose logs >> $BUILD_LOG
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
# ==================== 5. 执行主流程 ====================
|
||||
case "$1" in
|
||||
frontend)
|
||||
sync_frontend
|
||||
;;
|
||||
backend)
|
||||
deploy_backend
|
||||
;;
|
||||
*)
|
||||
sync_frontend
|
||||
deploy_backend
|
||||
;;
|
||||
esac
|
||||
|
||||
log "🏁 [$(date '+%H:%M:%S')] 部署完成!"
|
||||
Reference in New Issue
Block a user