From dcc2d0c40f24069bb6e1641a2d4e4b301d0dcea7 Mon Sep 17 00:00:00 2001 From: eddy Date: Wed, 1 Jul 2026 03:22:17 +0800 Subject: [PATCH] 223 --- install/23-Sub2API.sh | 41 +++++++++++++++++++++++++++++++++++++---- 1 file changed, 37 insertions(+), 4 deletions(-) diff --git a/install/23-Sub2API.sh b/install/23-Sub2API.sh index 2b53fbe..7cc5e3b 100644 --- a/install/23-Sub2API.sh +++ b/install/23-Sub2API.sh @@ -6,6 +6,43 @@ set -euo pipefail port80=8230 +# 安装目录与更新脚本路径 +install_dir=/root/data/docker_data/Sub2API +update_script="$install_dir/auto-update.sh" + +# 交互:选择安装或仅执行 Docker 更新 +echo "请选择操作:" +echo " 1) 安装 Sub2API(默认)" +echo " 2) 不安装,立即执行 Docker 更新" +read -r -p "请输入选项 [1/2](默认 1):" action_choice +action_choice="${action_choice:-1}" + +if [ "$action_choice" = "2" ]; then + echo "已选择:立即执行 Docker 更新。" + if [ -x "$update_script" ]; then + "$update_script" + elif [ -f "$install_dir/docker-compose.yml" ]; then + cd "$install_dir" || { echo "无法进入安装目录 $install_dir" >&2; exit 1; } + if docker compose version >/dev/null 2>&1; then + compose_cmd=(docker compose) + elif command -v docker-compose >/dev/null 2>&1; then + compose_cmd=(docker-compose) + else + echo "未检测到 docker compose 或 docker-compose,无法执行更新。" >&2 + exit 1 + fi + # 只更新 app 服务(Sub2API 镜像),不动 db / redis + "${compose_cmd[@]}" pull app + "${compose_cmd[@]}" up -d app + docker image prune -f + else + echo "未检测到已安装的 Sub2API(缺少 $install_dir/docker-compose.yml),请先安装。" >&2 + exit 1 + fi + echo "Docker 更新完成。" + exit 0 +fi + # 1、更新包(更新失败不阻断后续安装) export DEBIAN_FRONTEND=noninteractive @@ -78,10 +115,6 @@ else fi # 6、配置每日自动更新 -# install_dir 已在脚本开头创建,这里仅定义路径 -install_dir=/root/data/docker_data/Sub2API -update_script="$install_dir/auto-update.sh" - cat <<'EOF' > "$update_script" #!/bin/bash set -euo pipefail