#!/bin/bash # 暫時規範管理系統 V4 - 生產環境啟動腳本 # 使用方式: ./start-production.sh set -e echo "🚀 暫時規範管理系統 V4 - 生產環境部署" echo "==================================================" # 檢查必要檔案 echo "📋 檢查必要檔案..." if [ ! -f ".env" ]; then echo "❌ 錯誤: .env 檔案不存在" echo "請複製 .env.production 為 .env 並配置相應的值" exit 1 fi if [ ! -f "docker-compose.yml" ]; then echo "❌ 錯誤: docker-compose.yml 檔案不存在" exit 1 fi # 檢查 Docker 是否運行 echo "🐳 檢查 Docker 服務..." if ! docker info > /dev/null 2>&1; then echo "❌ 錯誤: Docker 服務未運行" echo "請啟動 Docker 服務後再試" exit 1 fi # 停止舊的容器(如果存在) echo "🛑 停止現有容器..." docker-compose down || true # 建構新的映像 echo "🔨 建構應用程式映像..." docker-compose build --no-cache # 啟動服務(生產環境配置) echo "🌟 啟動生產環境服務..." if [ -f "docker-compose.prod.yml" ]; then echo "使用生產環境配置檔案..." docker-compose -f docker-compose.yml -f docker-compose.prod.yml up -d else echo "使用標準配置啟動..." docker-compose --profile production up -d fi # 等待服務啟動 echo "⏳ 等待服務啟動..." sleep 10 # 檢查服務狀態 echo "📊 檢查服務狀態..." docker-compose ps # 顯示服務 URL echo "" echo "✅ 部署完成!" echo "==================================================" echo "📍 服務存取點:" echo " 主應用程式: http://localhost:12010" echo " OnlyOffice: http://localhost:12011" echo "" echo "📊 管理命令:" echo " 查看日誌: docker-compose logs -f" echo " 停止服務: docker-compose down" echo " 重啟服務: docker-compose restart" echo "" echo "🔧 監控命令:" echo " 查看容器狀態: docker-compose ps" echo " 查看資源使用: docker stats" echo "" # 檢查健康狀態 echo "🏥 健康檢查..." sleep 5 # 檢查 Redis if docker-compose exec -T redis redis-cli ping > /dev/null 2>&1; then echo "✅ Redis: 健康" else echo "❌ Redis: 異常" fi # 檢查應用程式 if curl -f http://localhost:12010/ > /dev/null 2>&1; then echo "✅ 應用程式: 健康" else echo "❌ 應用程式: 異常" fi # 檢查 OnlyOffice if curl -f http://localhost:12011/healthcheck > /dev/null 2>&1; then echo "✅ OnlyOffice: 健康" else echo "❌ OnlyOffice: 異常" fi echo "" echo "🎉 生產環境啟動完成!"