#!/bin/bash

# 简单的Docker镜像构建脚本
# 当无法访问Docker Hub时使用

echo "=== 云盘应用 Docker 镜像构建工具 ==="

# 检查可执行文件
if [ ! -f "dist/cloud-drive-server.exe" ]; then
    echo "错误: 未找到可执行文件"
    echo "请先运行: python package-app.py"
    exit 1
fi

# 创建临时目录
TEMP_DIR="temp-docker"
rm -rf $TEMP_DIR
mkdir -p $TEMP_DIR

echo "正在准备Docker镜像内容..."

# 复制可执行文件
cp dist/cloud-drive-server.exe $TEMP_DIR/

# 创建运行脚本
cat > $TEMP_DIR/start.sh << 'EOF'
#!/bin/sh
# 设置时区
export TZ=Asia/Shanghai
ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

# 创建必要目录
mkdir -p /app/uploads /app/logs

# 启动应用
exec ./cloud-drive-server.exe
EOF

chmod +x $TEMP_DIR/start.sh

# 创建简化的Dockerfile
cat > $TEMP_DIR/Dockerfile << 'EOF'
# 使用scratch基础镜像（无依赖）
FROM scratch

# 复制可执行文件和脚本
COPY cloud-drive-server.exe /
COPY start.sh /

# 设置执行权限
CMD ["/start.sh"]
EOF

echo "Docker镜像内容准备完成"
echo "临时目录: $TEMP_DIR"

# 如果可以使用Docker
if command -v docker &> /dev/null; then
    echo "正在构建Docker镜像..."
    cd $TEMP_DIR

    # 尝试构建
    if docker build -t cloud-drive-backend:simple . 2>/dev/null; then
        echo "OK Docker镜像构建成功"
        echo "镜像名称: cloud-drive-backend:simple"
        echo ""
        echo "运行命令:"
        echo "  docker run -d -p 8002:8002 --name cloud-drive-backend cloud-drive-backend:simple"
    else
        echo "Docker镜像构建失败，可能是网络问题"
        echo "请检查Docker网络配置或稍后重试"
    fi

    cd ..
else
    echo "未找到Docker命令"
fi

echo "=== 构建完成 ==="