docker-test.sh 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. #!/bin/bash
  2. # Docker 本地测试脚本
  3. set -e
  4. echo "========================================================================"
  5. echo "🐳 Docker 本地测试环境"
  6. echo "========================================================================"
  7. # 颜色定义
  8. GREEN='\033[0;32m'
  9. YELLOW='\033[1;33m'
  10. RED='\033[0;31m'
  11. NC='\033[0m' # No Color
  12. # 检查.env文件
  13. if [ ! -f .env ]; then
  14. echo -e "${RED}❌ 错误:.env 文件不存在${NC}"
  15. echo "请先创建 .env 文件(可以从 .env.example 复制)"
  16. exit 1
  17. fi
  18. echo ""
  19. echo "📋 步骤1:清理旧容器和镜像(如果存在)"
  20. echo "----------------------------------------"
  21. docker-compose down 2>/dev/null || true
  22. docker rmi auto_put_ad_mini-auto_put_ad_mini 2>/dev/null || true
  23. echo ""
  24. echo "📦 步骤2:构建Docker镜像"
  25. echo "----------------------------------------"
  26. echo "⚠️ 注意:首次构建可能需要5-10分钟..."
  27. docker-compose build
  28. echo ""
  29. echo "🚀 步骤3:启动容器"
  30. echo "----------------------------------------"
  31. docker-compose up -d
  32. echo ""
  33. echo "⏳ 等待服务启动(10秒)..."
  34. sleep 10
  35. echo ""
  36. echo "📊 步骤4:检查容器状态"
  37. echo "----------------------------------------"
  38. docker-compose ps
  39. echo ""
  40. echo "🏥 步骤5:健康检查"
  41. echo "----------------------------------------"
  42. echo "正在检查 http://localhost:8080/health ..."
  43. if command -v jq &> /dev/null; then
  44. curl -s http://localhost:8080/health | jq .
  45. else
  46. curl -s http://localhost:8080/health
  47. fi
  48. if [ $? -eq 0 ]; then
  49. echo -e "${GREEN}✅ 服务健康检查通过!${NC}"
  50. else
  51. echo -e "${RED}❌ 服务健康检查失败${NC}"
  52. echo "查看日志:"
  53. docker-compose logs --tail=50
  54. exit 1
  55. fi
  56. echo ""
  57. echo "🎯 步骤6:手动触发测试"
  58. echo "----------------------------------------"
  59. echo "正在触发决策流程..."
  60. curl -X POST http://localhost:8080/trigger
  61. echo ""
  62. echo ""
  63. echo "========================================================================"
  64. echo -e "${GREEN}✅ Docker环境启动成功!${NC}"
  65. echo "========================================================================"
  66. echo ""
  67. echo "📍 可用的命令:"
  68. echo ""
  69. echo " # 查看实时日志"
  70. echo " docker-compose logs -f"
  71. echo ""
  72. echo " # 查看健康状态"
  73. echo " curl http://localhost:8080/health | jq ."
  74. echo ""
  75. echo " # 手动触发任务"
  76. echo " curl -X POST http://localhost:8080/trigger"
  77. echo ""
  78. echo " # 进入容器调试"
  79. echo " docker exec -it auto_put_ad_mini bash"
  80. echo ""
  81. echo " # 查看输出文件"
  82. echo " ls -lh outputs/reports/"
  83. echo ""
  84. echo " # 停止服务"
  85. echo " docker-compose down"
  86. echo ""
  87. echo " # 重新构建"
  88. echo " docker-compose build --no-cache"
  89. echo ""
  90. echo "========================================================================"
  91. echo "📖 测试完成后,记得停止容器:"
  92. echo " docker-compose down"
  93. echo "========================================================================"