Commit Graph

4 Commits

Author SHA1 Message Date
caoqianming 29742eb523 @
fix(deploy): update.sh 默认源改腾讯避开阿里滞后(卡 litellm>=1.83);build 跳过改 --skip-build;进度可见

阿里 PyPI 镜像同步滞后(只到 litellm 1.82.6),撞 requirements 的 >=1.83.0。
- 默认 APT/PIP/NPM 源阿里 -> 腾讯(已到 1.88);step 2 host pip 显式 --index-url(sudo -u 会洗掉 PIP_INDEX_URL env)
- ZCBOT_SKIP_SANDBOX_BUILD=1 env -> --skip-build CLI flag(开发期不留兼容)
- step 2 pip 去 -q + step 4 docker build --progress=plain,部署逐行流式可见

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@
2026-06-01 15:54:57 +08:00
caoqianming b6faeda83d fix(deploy): APP_USER 默认取部署目录属主,不写死 zcbot
与 APP_DIR 同思路:服务用户默认 = 部署目录属主(bootstrap chown 后即服务
用户),仍可 env 覆盖。加两道前置:推成 root 时 warn(服务/沙箱不该跑 root,
HOST_UID 要对齐 bind mount 属主),用户不存在直接 fail。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-01 15:28:16 +08:00
caoqianming e8aeef19de fix(deploy): update.sh 的 APP_DIR 从脚本位置推导,不写死 /opt/zcbot
部署目录 = 脚本所在 deploy/ 的上一级,用 readlink -f 解析(兼容相对路径 /
软链调用),仍可 APP_DIR env 覆盖。换部署路径不必再改脚本字面量。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-01 15:18:58 +08:00
caoqianming f66d55cc3b feat(deploy): 加一键部署脚本 deploy/update.sh(pull/pip/migration/build/restart/healthz)
固化日常部署:git pull --ff-only → pip install → db upgrade head →
docker build sandbox → systemctl restart → curl /healthz 验活。

两处钉死:① migration 不能漏,env.py 直读 os.environ 不读 .env,脚本从
.env 抠 ZCBOT_DB_URL 显式喂进去;② build 必先于 restart —— 容器复用 +
tools/ 烤进镜像,restart 时 shutdown_all 清旧容器,下次 ensure() 才用
新镜像重建。sandbox 每次 build 无所谓(重活在 COPY tools/ 之上,cache
让改代码部署秒过)。镜像源默认阿里,可置空回落官方。前置守卫 + healthz
失败 dump journalctl 非零退出。bootstrap 不进脚本,留 RUN.md。

RUN.md §部署 SOP 重写为指向脚本 + 手动 fallback;PROGRESS 加一条。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-01 14:52:44 +08:00