#!/bin/bash
set -e  # 遇到错误立即退出，便于排查

# 检查 Docker 命令是否存在
if command -v docker &> /dev/null; then
    # 获取主版本号（如 20.10.xx 返回 2）
    docker_version=$(docker --version | awk '{print $3}' | cut -d '.' -f1)
    if [[ "$docker_version" -eq 2 ]]; then
        echo "Docker 版本适用 (主版本号 $docker_version)"
    else
        echo "Docker 版本不适用 (主版本号 $docker_version)，请升级到 2.x 版本"
        exit 1
    fi
else
    echo "未安装 Docker，开始安装..."

    # 安装 dnf-utils（提供 config-manager）
    dnf install -y dnf-utils

    # 添加 Docker CE 仓库
    dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

    # 安装 Docker 引擎及相关组件
    dnf install -y docker-ce docker-ce-cli containerd.io

    # 启动 Docker 并设置开机自启
    systemctl enable --now docker

    echo "Docker 安装完成"
fi

# 确保 Docker 服务正在运行（即使已存在也再次确认）
systemctl is-active --quiet docker || systemctl start docker

# 安装 Docker Compose 插件（用于 docker compose 命令）
if ! docker compose version &> /dev/null; then
    echo "安装 Docker Compose 插件..."
    dnf install -y docker-compose-plugin
fi

# 准备目录并下载 compose 文件
mkdir -p /data/node-exporter
cd /data/node-exporter

# 如果文件已存在且内容正确，可以跳过下载，这里简单覆盖
wget -q -O docker-compose.yml http://34.92.120.197:8000/linux/prometheus/node-exporter/docker-compose.yml

# 启动服务（使用 docker compose，插件版）
docker compose up -d

echo "Node Exporter 已启动"