build-docker-optimized.sh 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. #!/bin/bash
  2. # ============================================
  3. # 快速 Docker 构建脚本 - 使用优化版 Dockerfile
  4. # 构建前请先执行:bash init-dependencies.sh
  5. # ============================================
  6. set -e
  7. SERVICE=${1:-gateway}
  8. TAG=${2:-latest}
  9. REGISTRY=${3:-localhost:5000}
  10. BUILD_NUMBER=$(date +%Y%m%d%H%M%S)
  11. GIT_COMMIT=$(git rev-parse --short HEAD 2>/dev/null || echo "unknown")
  12. case $SERVICE in
  13. gateway)
  14. DOCKERFILE="shop-recycle-gateway/Dockerfile.optimized"
  15. IMAGE_NAME="$REGISTRY/shop-recycle-gateway:$TAG"
  16. ;;
  17. order)
  18. DOCKERFILE="shop-recycle-order-service/Dockerfile.optimized"
  19. IMAGE_NAME="$REGISTRY/shop-recycle-order-service:$TAG"
  20. ;;
  21. payment)
  22. DOCKERFILE="shop-recycle-payment-service/Dockerfile.optimized"
  23. IMAGE_NAME="$REGISTRY/shop-recycle-payment-service:$TAG"
  24. ;;
  25. *)
  26. echo "未知服务: $SERVICE"
  27. echo "用法: $0 [gateway|order|payment] [tag] [registry]"
  28. exit 1
  29. ;;
  30. esac
  31. echo "════════════════════════════════════════════════════════════"
  32. echo "快速构建 - 使用优化版 Dockerfile"
  33. echo "════════════════════════════════════════════════════════════"
  34. echo "服务: $SERVICE"
  35. echo "TAG: $TAG"
  36. echo "镜像: $IMAGE_NAME"
  37. echo "Commit: $GIT_COMMIT"
  38. echo ""
  39. # 检查 Dockerfile 是否存在
  40. if [ ! -f "$DOCKERFILE" ]; then
  41. echo "❌ 错误: $DOCKERFILE 不存在"
  42. echo ""
  43. echo "首次使用时,请先执行初始化脚本:"
  44. echo " bash init-dependencies.sh"
  45. echo " bash build-docker-optimized.sh $SERVICE $TAG"
  46. exit 1
  47. fi
  48. echo ">>> 开始构建..."
  49. docker build \
  50. --build-arg BUILD_NUMBER="$BUILD_NUMBER" \
  51. --build-arg GIT_COMMIT="$GIT_COMMIT" \
  52. -t "$IMAGE_NAME" \
  53. -f "$DOCKERFILE" \
  54. .
  55. echo ""
  56. echo "════════════════════════════════════════════════════════════"
  57. echo "✅ 构建完成!"
  58. echo "════════════════════════════════════════════════════════════"
  59. echo ""
  60. echo "镜像详细信息:"
  61. docker images | grep "$REGISTRY" | head -3
  62. echo ""
  63. echo "运行容器: docker run -d -p 8080:8080 $IMAGE_NAME"