Files
Document_Translator/deploy.sh
2025-09-04 16:37:33 +08:00

102 lines
2.5 KiB
Bash

#!/bin/bash
# PANJIT 文件翻譯系統 - 一鍵部署腳本
# 版本: 2.0.0
# 日期: 2025-09-04
set -e
echo "🚀 PANJIT 文件翻譯系統部署腳本"
echo "================================="
# 檢查 Docker 環境
echo "📋 檢查 Docker 環境..."
if ! command -v docker &> /dev/null; then
echo "❌ Docker 未安裝,請先安裝 Docker"
exit 1
fi
if ! command -v docker-compose &> /dev/null; then
echo "❌ Docker Compose 未安裝,請先安裝 Docker Compose"
exit 1
fi
echo "✅ Docker 環境檢查完成"
# 檢查端口
echo "📋 檢查端口 12010..."
if lsof -Pi :12010 -sTCP:LISTEN -t >/dev/null; then
echo "⚠️ 端口 12010 已被占用"
echo "請停止占用端口的服務或修改配置中的端口號"
echo "當前占用進程:"
lsof -Pi :12010 -sTCP:LISTEN
read -p "是否繼續部署?(y/N): " -n 1 -r
echo
if [[ ! $REPLY =~ ^[Yy]$ ]]; then
exit 1
fi
else
echo "✅ 端口 12010 可用"
fi
# 創建必要目錄
echo "📁 創建必要目錄..."
mkdir -p uploads cache logs
chmod 755 uploads cache logs
echo "✅ 目錄創建完成"
# 停止舊服務
echo "🛑 停止現有服務..."
docker-compose down 2>/dev/null || true
# 建置映像
echo "🏗️ 建置 Docker 映像..."
docker-compose build
# 啟動服務
echo "🚀 啟動服務..."
docker-compose up -d
# 等待服務啟動
echo "⏳ 等待服務啟動..."
sleep 30
# 健康檢查
echo "🔍 檢查服務狀態..."
if curl -f http://localhost:12010/api/v1/health >/dev/null 2>&1; then
echo "✅ 主應用服務正常"
else
echo "❌ 主應用服務異常"
echo "查看日誌:"
docker-compose logs app
exit 1
fi
# 檢查 Celery Worker
echo "🔍 檢查 Celery Worker..."
if docker-compose exec -T celery-worker celery -A app.celery inspect ping >/dev/null 2>&1; then
echo "✅ Celery Worker 正常"
else
echo "⚠️ Celery Worker 可能異常,請檢查日誌"
fi
# 顯示服務狀態
echo ""
echo "📊 服務狀態:"
docker-compose ps
echo ""
echo "🎉 部署完成!"
echo "================================="
echo "📱 系統訪問地址: http://localhost:12010"
echo "🔧 API 文檔: http://localhost:12010/api"
echo "❤️ 健康檢查: http://localhost:12010/api/v1/health"
echo ""
echo "📋 管理命令:"
echo " 查看日誌: docker-compose logs -f"
echo " 停止服務: docker-compose down"
echo " 重啟服務: docker-compose restart"
echo " 服務狀態: docker-compose ps"
echo ""
echo "📞 技術支援: it-support@panjit.com.tw"
echo "================================="