|
|
#!/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" |