diff --git a/wiki/decisions/bodytype-classifier-training.md b/wiki/decisions/bodytype-classifier-training.md index db98471..7c01c90 100644 --- a/wiki/decisions/bodytype-classifier-training.md +++ b/wiki/decisions/bodytype-classifier-training.md @@ -152,6 +152,25 @@ the image, bump the booth's `TAG`. The trainer is never started by a deploy (a p `wash-collector` stack's `TRAINER_OUT` / `TRAINER_PUBLISH_TOKEN` lines stay commented until the first publish. +## Operating notes (first deploy, 2026-09-07) + +- **Only the collector shows as running — that is correct.** The trainer is not a service; it is + behind the `train` compose *profile*, so a deploy never starts it and `docker ps` on + `art-docker-station` lists one container. The trainer runs when invoked by hand, does its job, + exits, and leaves nothing behind (`--rm`). +- **A deploy does not pull profile services either.** The first `run` pulls the image itself, so + the host's Docker must be logged in to the registry (`docker compose -f + docker-compose.collector.yml --profile train pull trainer` is the check; if refused, `docker + login git.infra.msai.al` on the host first). +- **Why the wash-collector TAG bump mattered** although the collector code did not change: the + trainer service uses the stack's TAG, so a bump makes `run` resolve to an image that exists + (`stage-f7a262a` is the first tag that carries `parking-trainer`). +- **park-2 does not need the bump** until a model is pinned: the new vision image ships with an + empty `bodytype.version`, phase B off, nothing for a booth to gain. +- **What to run, from the stack's directory on the host:** `inspect` first (label counts per + class, `ready: false` until enough are reviewed), then `train`, read `report.md` under + `TRAINER_OUT//`, then `publish`, pin, push, bump the booth. Commands under §Running it. + ## Packaging rule (same as the vision service) Core deps are light (numpy, opencv-headless, onnxruntime): `inspect`, `evaluate`, the data and diff --git a/wiki/decisions/fleet-deployment-komodo.md b/wiki/decisions/fleet-deployment-komodo.md index b87ea22..ee39241 100644 --- a/wiki/decisions/fleet-deployment-komodo.md +++ b/wiki/decisions/fleet-deployment-komodo.md @@ -160,7 +160,9 @@ Same repo, branch and pinned `TAG` promotion, its own secret references, and — names its compose files — nothing booth-side lands on that host and nothing of it on a booth. The same stack carries the phase-B **trainer** as a compose *profile* (`train`, [[bodytype-classifier-training]]): a deploy never starts it; the owner runs it by hand on the host -with `docker compose … --profile train run --rm trainer …`. Its two env lines (`TRAINER_OUT`, the +with `docker compose … --profile train run --rm trainer …`. So after a deploy of that stack +`docker ps` shows one container — expected; and a deploy pulls nothing for the profile, the +first `run` does (host Docker must be logged in to the registry). Its two env lines (`TRAINER_OUT`, the `TRAINER_PUBLISH_TOKEN` secret reference) stay commented in `resources.toml` until the first publish. diff --git a/wiki/log.md b/wiki/log.md index 174057d..9b0db85 100644 --- a/wiki/log.md +++ b/wiki/log.md @@ -3144,6 +3144,13 @@ run; the Quadro FX 3800 is unusable (cc 1.3), the HD P530 irrelevant, the Xeon E compose seam drops the GPU reservation; cloud GPU rejected (crops stay on premises). Linked from [[opencv-anpr-service]], [[vision-review-outbox]], index. User: "No build just yet." +## [2026-09-07] ingest | Trainer deployed as a profile; operating notes +User pushed `stage-f7a262a`, bumped the `wash-collector` TAG, redeployed, and asked why only one +service runs on art-docker-station. Expected: the trainer is a compose profile, never started or +pulled by a deploy; run by hand, exits. Recorded on [[bodytype-classifier-training]] §Operating +notes (why the TAG bump still mattered, park-2 needs no bump until a pin, the registry login for +the first pull, the order of commands) and [[fleet-deployment-komodo]]. + ## [2026-09-07] build | Phase B trainer + the classifier stage on the booth User: "Shall we go and build the trainer for the Xeon?" Built `apps/trainer` (`parking-trainer`: `inspect` / `train` / `evaluate` / `publish`; reads the collector volume read-only, time split,