feat: 为 Sub2API 添加 app 镜像每日自动更新

- 生成 auto-update.sh,仅拉取并重启 app 服务(不动 db / redis)
- 注册每天 04:00 的定时任务,按脚本路径去重避免重复写入
- 兼容 docker compose 与 docker-compose,安装与更新均自动检测
- 更新后清理悬空镜像,并写入 auto-update.log 日志
- 安装结束时打印手动更新提示与自动更新说明
This commit is contained in:
eddy
2026-07-01 03:15:27 +08:00
parent 33c1068380
commit e2677ce118
+22 -7
View File
@@ -2,16 +2,19 @@
# chmod +x 23-Sub2API.sh && ./23-Sub2API.sh
# curl -sS -O https://gitea.tohub.top/Share/vps/raw/branch/main/install/23-Sub2API.sh && chmod +x 23-Sub2API.sh && ./23-Sub2API.sh
ipv4_address=$(curl -s ipv4.ip.sb)
set -euo pipefail
port80=8230
# 1、更新包
apt update -y && apt upgrade -y #更新一下包
# 1、更新包(更新失败不阻断后续安装)
export DEBIAN_FRONTEND=noninteractive
apt update -y || true
apt upgrade -y || true #更新一下包
# 2、创建安装目录
mkdir -p /root/data/docker_data/Sub2API
cd /root/data/docker_data/Sub2API
cd /root/data/docker_data/Sub2API || { echo "无法进入安装目录 /root/data/docker_data/Sub2API" >&2; exit 1; }
# 3、填写docker-compose配置
cat <<EOF > docker-compose.yml
@@ -52,18 +55,30 @@ services:
EOF
# 4、安装
if ! command -v docker >/dev/null 2>&1; then
echo "未检测到 docker,请先安装 Docker 后再运行本脚本。" >&2
exit 1
fi
if docker compose version >/dev/null 2>&1; then
docker compose up -d
else
elif command -v docker-compose >/dev/null 2>&1; then
docker-compose up -d
else
echo "未检测到 docker compose 或 docker-compose,请先安装 Docker Compose。" >&2
exit 1
fi
# 5、打开防火墙的端口
ufw allow $port80
if command -v ufw >/dev/null 2>&1; then
ufw allow "$port80"
ufw status
else
echo "未检测到 ufw,跳过防火墙端口放行。"
fi
# 6、配置每日自动更新
# install_dir 已在脚本开头(第 13 行)创建,这里仅定义路径
# install_dir 已在脚本开头创建,这里仅定义路径
install_dir=/root/data/docker_data/Sub2API
update_script="$install_dir/auto-update.sh"