102 lines
2.5 KiB
Bash
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 "=================================" |