#!/bin/bash echo "=== Spiderman Docker 镜像测试 ===" echo # 检查Docker是否运行 if ! docker info > /dev/null 2>&1; then echo "❌ Error: Docker is not running" exit 1 fi # 检查镜像是否存在 if ! docker images | grep -q "spiderman"; then echo "❌ Error: spiderman Docker image not found" echo "Please run: docker build -t spiderman:latest -f docker/Dockerfile ." exit 1 fi echo "✅ Docker is running" echo "✅ Spiderman image found" echo # 显示镜像信息 echo "📋 Image Information:" docker images | head -n 1 docker images | grep spiderman echo # 检查镜像大小 IMAGE_SIZE=$(docker images spiderman:latest --format "{{.Size}}") echo "📏 Image Size: $IMAGE_SIZE" echo # 测试容器启动(快速测试) echo "🚀 Testing container startup..." CONTAINER_ID=$(docker run -d -p 8888:8080 spiderman:latest) if [ $? -eq 0 ]; then echo "✅ Container started successfully" echo "📦 Container ID: $CONTAINER_ID" # 等待容器启动 echo "⏳ Waiting for container to be ready..." sleep 3 # 检查容器状态 STATUS=$(docker ps --filter "id=$CONTAINER_ID" --format "{{.Status}}") echo "📊 Container Status: $STATUS" # 测试健康检查端点(如果容器正在运行) if docker ps | grep -q $CONTAINER_ID; then echo "🏥 Testing health endpoint..." # 注意:这需要容器能够正常启动,如果没有Fabric网络可能会失败 # docker exec $CONTAINER_ID wget -O- http://localhost:8080/health 2>/dev/null || echo "⚠️ Health check failed (expected without Fabric network)" echo "⚠️ Health check skipped (requires Fabric network configuration)" fi # 清理容器 echo "🧹 Cleaning up test container..." docker stop $CONTAINER_ID > /dev/null docker rm $CONTAINER_ID > /dev/null echo "✅ Test container cleaned up" else echo "❌ Container failed to start" exit 1 fi echo echo "=== 测试完成 ===" echo "✅ Docker镜像构建成功!" echo echo "使用方法:" echo " docker run -p 8080:8080 spiderman:latest" echo " cd docker && docker-compose up -d" echo echo "更多信息请查看 docker/DOCKER_GUIDE.md"