CLAUDE.md: Deployment — образ 1.3.0, кампания на пять долей (shard, entrypoint.sh, docker-compose.shards.yml)

This commit is contained in:
2026-10-01 20:11:35 +03:00
parent 137876193d
commit 3882af3886
+17 -4
View File
@@ -637,15 +637,28 @@ Note the campaign has barely started: `out/` currently holds four finished runs
## Deployment
Published image **`notbigghost/kbc2d:1.2.0`**; the server needs only
Published image **`notbigghost/kbc2d:1.3.0`** (also `latest`); the server needs only
`docker-compose.server.yml` (the only compose file with no `build:` section), not
the sources. `ENTRYPOINT` is the campaign driver and `CMD` defaults to `--dry-run`,
so a stray `docker run` prints an estimate instead of starting a 100-hour job. Check
the sources. `ENTRYPOINT` is `bench/entrypoint.sh` and `CMD` defaults to `--dry-run`:
without `KBC2D_SHARD` it just forwards to `run_campaign.sh`, so a stray `docker run`
prints an estimate instead of starting a 100-hour job.
**Five shards** (since 1.3.0): every run in `scenarios.json` carries `"shard": 1..5`,
assigned by LPT in `gen_scenarios.py` (`--shards N`) on a dzn-shaped time model
(`DZN_MLUPS`), ≈24 h each. `docker-compose.shards.yml` + `shard.bat N` target someone
else's Windows/WSL2 PC: with `KBC2D_SHARD` set, the entrypoint picks the GPU path
(`/dev/dxg` → dzn, else NVIDIA toolkit), requires a non-CPU adapter in `vulkaninfo`,
runs `parity.py` once (marker `out/parity_shardN.ok`), then
`run_campaign.sh --resume --shard N`. A sharded driver writes `summary_shardN.csv` /
`campaign_shardN.log` instead of the shared names. The compose sets
`command: ["--resume"]` only to avoid inheriting `--dry-run`. Regenerating
`scenarios.json` must keep the diff to the shard fields — the generator reproduces the
rest exactly. Check
the card first (`--profile check run --rm vulkan`) — a missing GPU is better
discovered in a minute than in an hour. The `check` profile also carries
`preflight`, `calibrate` and `plan` services (plus `parity` in the WSL file).
Two version caveats: the `1.2.0` tag lives only in the compose files and prose —
Two version caveats: the `1.3.0` tag lives only in the compose files and prose —
`Cargo.toml` still says `version = "0.1.0"` and the Dockerfile defaults
`ARG VERSION=dev`. And `linux/amd64` is asserted in `README.md` only; no compose
file sets `platform:` and the Dockerfile sets no `--platform`.