# deploy.ps1 - Windows 部署脚本 param( [string]$Version = "latest", [string]$Registry = "your-registry.com", [string]$Namespace = "your-namespace" ) $ErrorActionPreference = "Stop" $ProjectName = "fengling" Write-Host "🚀 开始部署 $ProjectName 版本 $Version" -ForegroundColor Green try { # 1. 构建后端镜像 Write-Host "📦 构建后端镜像..." -ForegroundColor Yellow Set-Location Backend docker build -t "$Registry/$Namespace/fengling-backend:$Version" -f src/Fengling.Backend.Web/Dockerfile . docker push "$Registry/$Namespace/fengling-backend:$Version" Set-Location .. # 2. 构建前端镜像 Write-Host "🎨 构建前端镜像..." -ForegroundColor Yellow # 管理后台 Set-Location Frontend/Fengling.Backend.Admin docker build -t "$Registry/$Namespace/fengling-admin:$Version" . docker push "$Registry/$Namespace/fengling-admin:$Version" Set-Location ../.. # H5会员端 Set-Location Frontend/Fengling.H5 docker build -t "$Registry/$Namespace/fengling-h5:$Version" . docker push "$Registry/$Namespace/fengling-h5:$Version" Set-Location ../.. # 3. 部署到 Kubernetes (如果使用) if (Test-Path "k8s") { Write-Host "☸️ 部署到 Kubernetes..." -ForegroundColor Yellow kubectl set image deployment/fengling-backend fengling-backend="$Registry/$Namespace/fengling-backend:$Version" kubectl set image deployment/fengling-admin fengling-admin="$Registry/$Namespace/fengling-admin:$Version" kubectl set image deployment/fengling-h5 fengling-h5="$Registry/$Namespace/fengling-h5:$Version" # 等待部署完成 kubectl rollout status deployment/fengling-backend kubectl rollout status deployment/fengling-admin kubectl rollout status deployment/fengling-h5 } # 4. 部署到 Docker Compose (如果使用) if (Test-Path "docker-compose.prod.yml") { Write-Host "🐳 部署到 Docker Compose..." -ForegroundColor Yellow docker-compose -f docker-compose.prod.yml pull docker-compose -f docker-compose.prod.yml up -d } Write-Host "✅ 部署完成!" -ForegroundColor Green Write-Host "应用查看地址:" -ForegroundColor Cyan Write-Host "- 管理后台: http://your-admin-domain.com" -ForegroundColor White Write-Host "- H5会员端: http://your-h5-domain.com" -ForegroundColor White Write-Host "- API 文档: http://your-api-domain.com/swagger" -ForegroundColor White } catch { Write-Host "❌ 部署失败: $($_.Exception.Message)" -ForegroundColor Red exit 1 }