yuetsh
eadfa0b04a
fix(部署脚本): 改成在服务器上直接跑,加 --check
上一版是从本机 rsync + ssh 过去的,不是想要的形态。改成服务器上跑:
代码怎么上去(rsync / 以后的 git pull)不归它管,脚本只管起栈。
五道自检,前两道是这次在服务器上真撞到的失败:
compose 版本 ≥ 2.20 depends_on.required 是那版才有的字段
DATA_DIR 卷指向 OJ2/data → 中止(空数据,且不报错)
DB_HOST DATABASE_URL 还指着 oj-postgres → 中止
JUDGE_STATE_DIR 没设的话新旧两个判题机共用运行目录
旧栈还活着 oj-postgres / oj-redis 是新栈的上游
--check 只做只读校验,不建目录不动容器(mkdir 挪到起栈那一段了)。
## 跑出来的两个问题
1. 版本比较写反了。原来用 `sort -V -C` 判「这两行本来就有序」,结果本机
compose 5.4.0 被判成「太老」。改成取 min(2.20, ver),在 1.29.2 / 2.19.9 /
2.20.0 / 2.24.5 / 5.4.0 / 0 六个值上逐个验过分界。
2. --check 里的 mkdir 会真的建目录,本机跑直接撞权限。挪走了。
自检全路径实跑过:旧栈没起时正确拦下;造两个同名容器冒充旧栈后全绿通过;
抹掉 DATA_DIR / DB_HOST 两条守卫都按预期中止并打出可操作的提示。
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-16 09:34:39 -06:00
..
2026-08-06 22:42:39 -06:00
2026-08-16 09:34:39 -06:00
2026-08-06 20:08:53 -06:00