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
|
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 |