You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
spiderman/test_docker.sh

77 lines
2.2 KiB

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