#!/bin/bash # deploy.sh - 自动化部署脚本 set -e # 遇到错误立即退出 # 配置变量 PROJECT_NAME="fengling" VERSION=${1:-"latest"} REGISTRY="your-registry.com" NAMESPACE="your-namespace" echo "🚀 开始部署 $PROJECT_NAME 版本 $VERSION" # 1. 构建后端镜像 echo "📦 构建后端镜像..." cd Backend docker build -t $REGISTRY/$NAMESPACE/fengling-backend:$VERSION -f src/Fengling.Backend.Web/Dockerfile . docker push $REGISTRY/$NAMESPACE/fengling-backend:$VERSION cd .. # 2. 构建前端镜像 echo "🎨 构建前端镜像..." # 管理后台 cd Frontend/Fengling.Backend.Admin docker build -t $REGISTRY/$NAMESPACE/fengling-admin:$VERSION . docker push $REGISTRY/$NAMESPACE/fengling-admin:$VERSION cd ../.. # H5会员端 cd Frontend/Fengling.H5 docker build -t $REGISTRY/$NAMESPACE/fengling-h5:$VERSION . docker push $REGISTRY/$NAMESPACE/fengling-h5:$VERSION cd ../.. # 3. 部署到 Kubernetes (如果使用) if [ -d "k8s" ]; then echo "☸️ 部署到 Kubernetes..." 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 fi # 4. 部署到 Docker Compose (如果使用) if [ -f "docker-compose.prod.yml" ]; then echo "🐳 部署到 Docker Compose..." docker-compose -f docker-compose.prod.yml pull docker-compose -f docker-compose.prod.yml up -d fi echo "✅ 部署完成!" echo "应用查看地址:" echo "- 管理后台: http://your-admin-domain.com" echo "- H5会员端: http://your-h5-domain.com" echo "- API 文档: http://your-api-domain.com/swagger"