#!/bin/bash

# QAUP 离线部署镜像导入脚本
# 此脚本在客户内网环境中运行

set -e

# 配置变量
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
IMAGES_DIR="$SCRIPT_DIR/../images"

echo "========================================="
echo "QAUP 离线部署镜像导入开始"
echo "========================================="

# 检查镜像目录是否存在
if [ ! -d "$IMAGES_DIR" ]; then
    echo "错误: 镜像目录不存在: $IMAGES_DIR"
    echo "请确保离线部署包已正确解压"
    exit 1
fi

cd "$IMAGES_DIR"

# 验证校验和
if [ -f "checksums.sha256" ]; then
    echo "验证镜像文件完整性..."
    if sha256sum -c checksums.sha256; then
        echo "✓ 所有镜像文件校验通过"
    else
        echo "✗ 镜像文件校验失败，请重新获取离线部署包"
        exit 1
    fi
else
    echo "警告: 未找到校验和文件，跳过完整性验证"
fi

# 导入镜像
echo ""
echo "开始导入 Docker 镜像..."

for image_file in *.tar.gz; do
    if [ -f "$image_file" ]; then
        echo "导入镜像: $image_file"
        gunzip -c "$image_file" | docker load
        echo "✓ $image_file 导入完成"
    fi
done

echo ""
echo "========================================="
echo "验证导入的镜像:"
echo "========================================="

# 验证镜像是否成功导入
echo "已导入的镜像列表:"
docker images --format "table {{.Repository}}:{{.Tag}}\t{{.Size}}\t{{.CreatedAt}}" | grep -E "(qaup|openjdk|nginx|postgis|redis)"

echo ""
echo "镜像导入完成！"
echo "现在可以运行 docker-compose up 启动服务"