# Nginx 反向代理部署脚本 (PowerShell) Write-Host "🚀 开始部署 AIGC 平台..." -ForegroundColor Green # 检查 Docker if (-not (Get-Command docker -ErrorAction SilentlyContinue)) { Write-Host "❌ Docker 未安装,请先安装 Docker" -ForegroundColor Red exit 1 } if (-not (Get-Command docker-compose -ErrorAction SilentlyContinue)) { Write-Host "❌ Docker Compose 未安装,请先安装 Docker Compose" -ForegroundColor Red exit 1 } # 构建前端 Write-Host "📦 构建前端..." -ForegroundColor Yellow Push-Location frontend try { npm install if ($LASTEXITCODE -ne 0) { Write-Host "❌ 前端依赖安装失败" -ForegroundColor Red exit 1 } npm run build if ($LASTEXITCODE -ne 0) { Write-Host "❌ 前端构建失败" -ForegroundColor Red exit 1 } } finally { Pop-Location } # 检查前端构建产物 if (-not (Test-Path "frontend/dist")) { Write-Host "❌ 前端构建产物不存在,请检查构建过程" -ForegroundColor Red exit 1 } Write-Host "✅ 前端构建完成" -ForegroundColor Green # 停止现有容器 Write-Host "🛑 停止现有容器..." -ForegroundColor Yellow docker-compose down # 构建并启动服务 Write-Host "🔨 构建并启动服务..." -ForegroundColor Yellow docker-compose up -d --build # 等待服务启动 Write-Host "⏳ 等待服务启动..." -ForegroundColor Yellow Start-Sleep -Seconds 10 # 检查服务状态 Write-Host "📊 检查服务状态..." -ForegroundColor Yellow docker-compose ps # 测试健康检查 Write-Host "🏥 测试健康检查..." -ForegroundColor Yellow try { $response = Invoke-WebRequest -Uri "http://localhost/health" -TimeoutSec 5 -UseBasicParsing if ($response.StatusCode -eq 200) { Write-Host "✅ Nginx 健康检查通过" -ForegroundColor Green } } catch { Write-Host "⚠️ Nginx 健康检查失败" -ForegroundColor Yellow } Write-Host "" Write-Host "✅ 部署完成!" -ForegroundColor Green Write-Host "🌐 前端地址: http://localhost" -ForegroundColor Cyan Write-Host "🔗 API 地址: http://localhost/api" -ForegroundColor Cyan Write-Host "" Write-Host "查看日志: docker-compose logs -f" -ForegroundColor Gray Write-Host "停止服务: docker-compose down" -ForegroundColor Gray