Spaces:
Configuration error
Configuration error
# Docker镜像大小比较脚本 | |
echo "🐳 Docker镜像构建和大小比较" | |
echo "==========================" | |
echo | |
# 检查Docker是否可用 | |
if ! command -v docker &> /dev/null; then | |
echo "❌ Docker未安装" | |
exit 1 | |
fi | |
echo "📦 构建不同版本的Docker镜像..." | |
echo | |
# 构建标准版本 | |
echo "🔨 构建标准单容器版本..." | |
docker build -t chatapp:standard -f Dockerfile . --no-cache | |
echo | |
# 构建优化版本 | |
echo "🔨 构建优化版本..." | |
docker build -t chatapp:optimized -f Dockerfile.optimized . --no-cache | |
echo | |
# 构建多容器版本 | |
echo "🔨 构建前端容器..." | |
docker build -t chatapp:frontend ./client --no-cache | |
echo "🔨 构建后端容器..." | |
docker build -t chatapp:backend ./server --no-cache | |
echo | |
# 显示镜像大小比较 | |
echo "📊 镜像大小比较:" | |
echo "==================" | |
echo | |
# 获取镜像信息 | |
STANDARD_SIZE=$(docker images chatapp:standard --format "{{.Size}}") | |
OPTIMIZED_SIZE=$(docker images chatapp:optimized --format "{{.Size}}") | |
FRONTEND_SIZE=$(docker images chatapp:frontend --format "{{.Size}}") | |
BACKEND_SIZE=$(docker images chatapp:backend --format "{{.Size}}") | |
echo "📦 单容器版本:" | |
echo " 标准版本: $STANDARD_SIZE" | |
echo " 优化版本: $OPTIMIZED_SIZE" | |
echo | |
echo "📦 多容器版本:" | |
echo " 前端容器: $FRONTEND_SIZE" | |
echo " 后端容器: $BACKEND_SIZE" | |
echo | |
# 详细镜像信息 | |
echo "📋 详细镜像信息:" | |
echo "==================" | |
docker images | grep chatapp | sort -k2 | |
echo | |
echo "🔍 镜像层分析:" | |
echo "==============" | |
echo | |
echo "📊 标准版本镜像层:" | |
docker history chatapp:standard --format "table {{.CreatedBy}}\t{{.Size}}" | head -10 | |
echo | |
echo "📊 优化版本镜像层:" | |
docker history chatapp:optimized --format "table {{.CreatedBy}}\t{{.Size}}" | head -10 | |
echo | |
echo "💡 建议:" | |
echo "========" | |
echo "✅ 生产环境推荐使用优化版本 (chatapp:optimized)" | |
echo "✅ 开发环境可以使用多容器版本便于调试" | |
echo "✅ 如需最小镜像,考虑使用多阶段构建进一步优化" | |
echo | |
echo "🧪 性能测试建议:" | |
echo "================" | |
echo "1. 启动时间测试:" | |
echo " time docker run --rm chatapp:standard" | |
echo " time docker run --rm chatapp:optimized" | |
echo | |
echo "2. 内存使用测试:" | |
echo " docker stats --no-stream" | |
echo | |
echo "3. 网络性能测试:" | |
echo " 使用 ab 或 wrk 工具测试HTTP性能" | |
echo | |
echo "🧹 清理命令:" | |
echo "============" | |
echo "# 删除测试镜像" | |
echo "docker rmi chatapp:standard chatapp:optimized chatapp:frontend chatapp:backend" | |
echo | |
echo "# 清理构建缓存" | |
echo "docker builder prune -f" | |
# 询问是否清理 | |
read -p "是否现在清理测试镜像? (y/N): " cleanup | |
if [[ $cleanup =~ ^[Yy]$ ]]; then | |
echo "🧹 清理镜像..." | |
docker rmi chatapp:standard chatapp:optimized chatapp:frontend chatapp:backend 2>/dev/null || true | |
echo "✅ 清理完成" | |
fi | |