76 lines
1.9 KiB
Plaintext
76 lines
1.9 KiB
Plaintext
cat > /root/docker-offline-install.sh <<'EOF'
|
||
#!/bin/sh
|
||
|
||
ZIP_NAME="dockde12.zip"
|
||
WORKDIR="/root/docker-offline"
|
||
URL1="https://freeyx.vps3344.dpdns.org/xui/dockde12.zip"
|
||
URL2="https://pub-b69a7194f4ea42fba6aa990c49bded91.r2.dev/xui/dockde12.zip"
|
||
|
||
echo "===== Docker Debian12 离线安装脚本 ====="
|
||
date
|
||
|
||
# 1. 基础检查
|
||
echo "[1/7] 检查 dpkg"
|
||
command -v dpkg >/dev/null 2>&1 || {
|
||
echo "[错误] 系统没有 dpkg,无法使用 DEB 离线安装"
|
||
exit 1
|
||
}
|
||
|
||
mkdir -p "$WORKDIR"
|
||
cd "$WORKDIR" || exit 1
|
||
|
||
# 2. 获取安装包
|
||
if [ ! -f "$ZIP_NAME" ]; then
|
||
echo "[2/7] 下载离线安装包(主地址)"
|
||
curl -L --fail "$URL1" -o "$ZIP_NAME" || {
|
||
echo "[警告] 主地址失败,使用备用地址"
|
||
curl -L --fail "$URL2" -o "$ZIP_NAME" || {
|
||
echo "[错误] 离线包下载失败"
|
||
exit 1
|
||
}
|
||
}
|
||
else
|
||
echo "[2/7] 已存在离线包,跳过下载"
|
||
fi
|
||
|
||
# 3. 解压
|
||
echo "[3/7] 解压安装包"
|
||
rm -rf debs
|
||
mkdir debs
|
||
unzip -o "$ZIP_NAME" -d debs || {
|
||
echo "[错误] 解压失败"
|
||
exit 1
|
||
}
|
||
|
||
cd debs || exit 1
|
||
|
||
# 4. 强制安装(忽略依赖)
|
||
echo "[4/7] 使用 dpkg 强制安装全部 DEB"
|
||
dpkg -i *.deb || echo "[提示] 依赖错误已忽略,继续执行"
|
||
|
||
# 5. 尝试修复(如果 apt 还能用就赚到)
|
||
echo "[5/7] 尝试修复依赖(可失败)"
|
||
apt-get -f install -y >/dev/null 2>&1 || echo "[提示] apt 修复失败,已跳过"
|
||
|
||
# 6. 尝试启动 Docker
|
||
echo "[6/7] 尝试启动 Docker"
|
||
if command -v systemctl >/dev/null 2>&1; then
|
||
systemctl daemon-reexec >/dev/null 2>&1
|
||
systemctl enable docker >/dev/null 2>&1
|
||
systemctl start docker >/dev/null 2>&1
|
||
fi
|
||
|
||
sleep 2
|
||
|
||
# 7. 验证
|
||
echo "[7/7] 验证 Docker 状态"
|
||
if command -v docker >/dev/null 2>&1; then
|
||
docker version || echo "[警告] docker 命令存在,但 daemon 未启动"
|
||
else
|
||
echo "[错误] docker 命令未安装成功"
|
||
fi
|
||
|
||
echo "===== 脚本执行结束 ====="
|
||
date
|
||
EOF
|