Repository navigation
以前装它得先 clone、改三处占位符、再等本地编译几分钟。NAS 上没有 git、或者不熟悉命令行的人,往往卡在这一步就没继续。现在镜像直接拉:
curl -fsSL https://raw.githubusercontent.com/mingyangbest/tpbackup/main/install.sh | bash新增
- 镜像发到了 GitHub 容器仓库
ghcr.io/mingyangbest/tpbackup,amd64 和 arm64 都有。装的过程不再需要 git,也不用编译。 install.sh一键装:检查 Docker、建目录、生成随机密码、拉镜像、起容器、等健康检查、把访问地址和密码打印出来。重复运行不会重置密码、不会动数据,升级时也可以直接重跑。- 仓库根目录放了一份开箱能用的
docker-compose.yml。默认端口 8088、密码 tpbackup、备份目录是当前目录下的library/,什么都不改就能起来。想改就复制一份.env.example成.env,改三行。 docker-compose.build.yml:想本地构建(改代码,或者不想用预构建镜像)时走这条。配置继承上面那份,端口密码目录的改法完全一样,不会出现两份配置各自漂移。- 4 项部署入口测试:
install.sh内嵌的 compose 与仓库文件逐字比对、.env.example里的键是不是真有人读、开箱默认值对不对、脚本语法。
修好的问题
- 一键脚本会把已有的同名容器顶掉。第一版容器名默认
tpbackup,机器上已经有一个在跑时,compose 认为这就是同一个服务,直接替换掉——换成新镜像、新端口、新密码,脚本还照常说「装好了」。真机验收时把一台生产实例这么顶掉过,数据卷没动,配置和令牌都在,但那几分钟服务是断的。现在起容器前先查同名容器属于哪个目录,不是本目录就停下,把两个选择摆出来:升级它,或者换个名字装第二个。 - 打印出来的地址可能打不开。以前取
hostname -I的第一项,NAS 上那往往是网桥或虚拟机地址(实测那台机器第一项是 192.168.124.112,真地址排在后面)。改成取默认路由的出口地址。
升级前看一眼
- 这一版没改容器里的代码。
app/和Dockerfile跟 v0.2.2 逐字相同,已经在跑的实例不需要动,备份行为一点没变。这次改的是「怎么装」。 docker-compose.example.yml删了。你机器上那份docker-compose.yml是你自己的,照旧用,不用跟着改;仓库里新的那份是给新装的人用的(拉镜像,不本地构建)。- 同一台机器想装第二个实例,名字和端口都得换:
TPBACKUP_NAME=tpbackup2 TPBACKUP_PORT=8090 bash install.sh。只换端口不换名字,会被当成同一个实例。 - 镜像标签:
0.2.3这样的数字标签固定版本,latest跟着默认分支走。