Add runtime post-recreate sanity check (peer of smoke-test.sh)
scripts/recreate-sanity-check.sh verifies what is actually live in a recreated container — persisted volumes, pi runtime wiring (keybindings, extensions, mempalace.ts bridge, settings.json, fork/obsmem/studio registrations), /tmp/sshcm, skel defaults, /opt toolkits. smoke-test.sh runs at build time with --entrypoint="" and cannot see any of this. Variant (studio/plain) auto-detected via /opt/pi-studio. pi version is asserted only with --expected-version (built from 'latest', no Dockerfile pin to self-derive). Maintainer tooling, not baked into the image. Documented in README and CHANGELOG.
This commit is contained in:
@@ -539,6 +539,26 @@ ssh-jump-via-host configuration. Set `DEVBOX_LAN_ACCESS=jump` and
|
||||
./scripts/smoke-test.sh joakimp/pi-devbox:latest
|
||||
```
|
||||
|
||||
`smoke-test.sh` is a **build-time** check (runs with `--entrypoint=""`), so
|
||||
it validates image contents and a fresh entrypoint deploy — it never sees a
|
||||
recreated container's persisted volumes.
|
||||
|
||||
### Post-recreate sanity check
|
||||
|
||||
After `docker compose up -d --force-recreate`, run the **runtime** peer of
|
||||
`smoke-test.sh` from *inside* the container to confirm the new image is live,
|
||||
persisted volumes survived, and pi runtime wiring is intact:
|
||||
|
||||
```bash
|
||||
./scripts/recreate-sanity-check.sh # auto-detects variant
|
||||
./scripts/recreate-sanity-check.sh --expected-version 0.79.3 # assert pi version
|
||||
```
|
||||
|
||||
If `cli_utils` is on your PATH, the `pi-devbox-sanity` wrapper runs the same
|
||||
check by short name and locates the repo automatically (override with
|
||||
`PI_DEVBOX_REPO=/path/to/pi-devbox`). Like `smoke-test.sh`, this script is
|
||||
maintainer tooling and is **not** shipped in the published image.
|
||||
|
||||
## Versioning and release
|
||||
|
||||
pi-devbox follows semver-ish:
|
||||
|
||||
Reference in New Issue
Block a user