#!/bin/bash
###############################################################################
# Script: install.sh
# Desc:  Docker 离线安装脚本 (v26.1.3)
# Usage: sudo ./install.sh
###############################################################################

set -e # 遇到错误立即停止

# 颜色定义
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
NC='\033[0m' # No Color

echo -e "${YELLOW}>>> 开始安装 Docker...${NC}"

# 1. 权限检查
if [ "$EUID" -ne 0 ]; then 
  echo -e "${RED}错误：请使用 root 权限运行此脚本 (sudo ./install.sh)${NC}"
  exit 1
fi

# 2. 解压压缩包 (如果存在且未解压)
if [ -f "docker-26.1.3.tgz" ] && [ ! -d "docker" ]; then
    echo -e "${GREEN}[1/6] 正在解压 docker-26.1.3.tgz...${NC}"
    tar -zxvf docker-26.1.3.tgz
fi

# 3. 移动二进制文件
echo -e "${GREEN}[2/6] 正在复制二进制文件到 /usr/bin...${NC}"
if [ -d "docker" ]; then
    cp -f docker/* /usr/bin/
else
    echo -e "${RED}错误：找不到 docker 目录，请确认压缩包已解压。${NC}"
    exit 1
fi

# 4. 配置 Systemd 服务
echo -e "${GREEN}[3/6] 正在部署 docker.service...${NC}"
cp -f docker.service /etc/systemd/system/

# 5. 设置权限并重载配置
echo -e "${GREEN}[4/6] 设置权限并重新加载 systemd 配置...${NC}"
chmod 644 /etc/systemd/system/docker.service # 服务文件通常不需要执行权限，644即可
systemctl daemon-reload

# 6. 启动并设置开机自启
echo -e "${GREEN}[5/6] 启动 Docker 服务...${NC}"
systemctl enable docker.service
systemctl start docker

# 7. 验证安装
echo -e "${GREEN}[6/6] 验证安装结果...${NC}"
if systemctl is-active --quiet docker; then
    echo -e "${GREEN}✅ Docker 安装成功！${NC}"
    docker -v
else
    echo -e "${RED}❌ Docker 启动失败，请查看日志：journalctl -u docker.service${NC}"
    exit 1
fi
