docs: 给 OJ2 补一份自己的 CLAUDE.md;Dockerfile 拷上 bunfig.toml
## bunfig.toml 没拷进容器,才是那批「本地能过、容器过不了」的根因 bunfig.toml 里设了 `linker = "hoisted"`,但 Dockerfile 只拷了 package.json 和 bun.lock,于是容器里用的是默认的 isolated 布局(包都在 node_modules/.bun/ 下), 本地靠"提升"才解析得到的包在容器里一律 Could not resolve —— 而本地构建始终是好的, 只有镜像构建才炸。之前是一个一个补直接依赖补过去的(那是对的、该保留), 这里让两边布局一致,是第二道保险。 带上之后装 622 个包(isolated 是 1238),镜像重建通过,二进制在容器里 serve + healthcheck 正常。 顺手补了 main.ts 帮助文本里漏掉的 healthcheck 子命令(compose 里把 command 写错时,看到的就是这行)。 ## OJ2/CLAUDE.md OJ2 是独立仓库,之前没有自己的项目指引。写了一份,重点是几条「不知道就会踩」的: - **本机 Docker 可用**,整套依赖和上线演练都能在本机跑 —— 别沿用上一代 "本机跑不起来后端"的旧假设 - 单二进制不能依赖 node_modules,`.node` 资源导入 dev 和编译两种形态行为不同, **改完两种形态都要跑** - SQL 判题 spawn 的是二进制自己,入口必须有 argv 分发,那道递归闸不能删 - 判题状态码三处同步、raw_password 要保留、比赛只有 ACM、前端要兼容老 Chrome - 不写迁移:新旧后端跑同一套表结构,这是回滚能成立的前提 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -47,6 +47,6 @@ switch (command) {
|
||||
}
|
||||
}
|
||||
default:
|
||||
console.error(`未知子命令:${command}\n可用:serve | worker | sql-child`)
|
||||
console.error(`未知子命令:${command}\n可用:serve | worker | healthcheck | sql-child`)
|
||||
process.exit(2)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user