diff --git a/install.sh b/install.sh index 0e23eb3..f0860eb 100755 --- a/install.sh +++ b/install.sh @@ -13,9 +13,10 @@ # bash <(curl -fsSL https://xuqinmin.com/xuqmGroup/XuqmGroup-PrivateDeploy/raw/branch/main/install.sh) # # 环境变量(可选): -# DEPLOY_HOST 目标机器 IP / 主机名(默认自动检测本机 IP) -# INSTALL_DIR 安装目录(默认 /opt/xuqm-private) -# XUQM_BRANCH Gitea 分支(默认 main) +# DEPLOY_HOST 目标机器 IP / 主机名(默认自动检测本机 IP) +# INSTALL_DIR 安装目录(默认 /opt/xuqm-private) +# XUQM_BRANCH Gitea 分支(默认 main) +# XUQM_SUDO_PASS sudo 密码(非 root 用户需配置 Docker 镜像加速时使用) set -euo pipefail @@ -130,6 +131,30 @@ if c.get('credsStore', '').endswith('.exe'): PYEOF fi +# 配置 Docker Hub 镜像加速(国内网络 Docker Hub 不可达时自动启用) +_DAEMON_CFG="/etc/docker/daemon.json" +if ! curl -fsS --max-time 5 https://registry-1.docker.io/v2/ >/dev/null 2>&1; then + info "Docker Hub 不可达,尝试配置国内镜像加速..." + _MIRRORS='{"registry-mirrors":["https://docker.mirrors.ustc.edu.cn","https://hub-mirror.c.163.com","https://mirror.baidubce.com"]}' + _configured=0 + if [ "$(id -u)" -eq 0 ]; then + printf '%s\n' "$_MIRRORS" > "$_DAEMON_CFG" && _configured=1 + elif [ -n "${XUQM_SUDO_PASS:-}" ]; then + printf '%s\n' "$XUQM_SUDO_PASS" | sudo -S sh -c "printf '%s\n' '$_MIRRORS' > $_DAEMON_CFG" 2>/dev/null && _configured=1 + elif sudo -n true 2>/dev/null; then + sudo sh -c "printf '%s\n' '$_MIRRORS' > $_DAEMON_CFG" && _configured=1 + fi + if [ "$_configured" -eq 1 ]; then + service docker restart 2>/dev/null || \ + { [ -n "${XUQM_SUDO_PASS:-}" ] && printf '%s\n' "$XUQM_SUDO_PASS" | sudo -S service docker restart 2>/dev/null; } || \ + sudo -n service docker restart 2>/dev/null || true + sleep 3 + ok "Docker Hub 镜像加速已配置" + else + warn "无法配置镜像加速(需 root 或 XUQM_SUDO_PASS);若 Docker Hub 不可达,镜像拉取可能失败" + fi +fi + # --------------------------------------------------------------------------- # Step 3 — 确认 Docker Compose v2 # ---------------------------------------------------------------------------