feat: 为 Sub2API 添加 app 镜像每日自动更新
- 生成 auto-update.sh,仅拉取并重启 app 服务(不动 db / redis) - 注册每天 04:00 的定时任务,按脚本路径去重避免重复写入 - 兼容 docker compose 与 docker-compose,安装与更新均自动检测 - 更新后清理悬空镜像,并写入 auto-update.log 日志 - 安装结束时打印手动更新提示与自动更新说明
This commit is contained in:
+23
-8
@@ -2,16 +2,19 @@
|
|||||||
# chmod +x 23-Sub2API.sh && ./23-Sub2API.sh
|
# 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
|
# 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
|
port80=8230
|
||||||
|
|
||||||
|
|
||||||
# 1、更新包
|
# 1、更新包(更新失败不阻断后续安装)
|
||||||
apt update -y && apt upgrade -y #更新一下包
|
export DEBIAN_FRONTEND=noninteractive
|
||||||
|
apt update -y || true
|
||||||
|
apt upgrade -y || true #更新一下包
|
||||||
|
|
||||||
# 2、创建安装目录
|
# 2、创建安装目录
|
||||||
mkdir -p /root/data/docker_data/Sub2API
|
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配置
|
# 3、填写docker-compose配置
|
||||||
cat <<EOF > docker-compose.yml
|
cat <<EOF > docker-compose.yml
|
||||||
@@ -52,18 +55,30 @@ services:
|
|||||||
EOF
|
EOF
|
||||||
|
|
||||||
# 4、安装
|
# 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
|
if docker compose version >/dev/null 2>&1; then
|
||||||
docker compose up -d
|
docker compose up -d
|
||||||
else
|
elif command -v docker-compose >/dev/null 2>&1; then
|
||||||
docker-compose up -d
|
docker-compose up -d
|
||||||
|
else
|
||||||
|
echo "未检测到 docker compose 或 docker-compose,请先安装 Docker Compose。" >&2
|
||||||
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# 5、打开防火墙的端口
|
# 5、打开防火墙的端口
|
||||||
ufw allow $port80
|
if command -v ufw >/dev/null 2>&1; then
|
||||||
ufw status
|
ufw allow "$port80"
|
||||||
|
ufw status
|
||||||
|
else
|
||||||
|
echo "未检测到 ufw,跳过防火墙端口放行。"
|
||||||
|
fi
|
||||||
|
|
||||||
# 6、配置每日自动更新
|
# 6、配置每日自动更新
|
||||||
# install_dir 已在脚本开头(第 13 行)创建,这里仅定义路径
|
# install_dir 已在脚本开头创建,这里仅定义路径
|
||||||
install_dir=/root/data/docker_data/Sub2API
|
install_dir=/root/data/docker_data/Sub2API
|
||||||
update_script="$install_dir/auto-update.sh"
|
update_script="$install_dir/auto-update.sh"
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user