Files
TEMP_spec_system_noad/start-production.sh
2025-09-25 08:44:44 +08:00

102 lines
2.5 KiB
Bash

#!/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 "🎉 生產環境啟動完成!"