refactor: FROM opencode-devbox:latest-pi-only (lean, no opencode)

Re-point the re-brand at the new pi-only variant instead of with-pi, so
pi-devbox stays a lean pi-focused image (no opencode) while the pi install
logic still lives in one place upstream. This keeps pi-devbox meaningfully
distinct from opencode-devbox:latest-with-pi.

- Dockerfile: BASE_IMAGE default -> joakimp/opencode-devbox:latest-pi-only.
- smoke-test.sh: size threshold 2900 -> 2750 MB (pi-only = with-pi minus
  opencode's ~145 MB binary).
- Docs (README/AGENTS/DOCKER_HUB/CHANGELOG/docker-compose): drop the
  'also contains opencode' notes; describe pi-only basis and the distinction
  from with-pi.

Publish ordering unchanged: release opencode-devbox first so latest-pi-only
carries the target pi version, then tag here (smoke asserts pi --version).
This commit is contained in:
pi
2026-06-03 16:14:05 +02:00
parent c139be326f
commit 1d1283f942
7 changed files with 62 additions and 57 deletions
+9 -8
View File
@@ -8,15 +8,19 @@ Tags follow the pi npm version: `v{pi_version}[letter]` — bare tag for the fir
## Unreleased
### Changed: refactored to re-brand the opencode-devbox `with-pi` variant
### Changed: refactored to re-brand the opencode-devbox `pi-only` variant
pi-devbox no longer installs pi itself. The `Dockerfile` is now a thin
`FROM joakimp/opencode-devbox:latest-with-pi` (overridable via the `BASE_IMAGE`
`FROM joakimp/opencode-devbox:latest-pi-only` (overridable via the `BASE_IMAGE`
arg), inheriting pi + pi-toolkit + pi-extensions and all base tooling from the
single source of truth. This eliminates the install-logic duplication that
used to drift against `opencode-devbox/Dockerfile.variant`.
### Added (inherited from the with-pi variant)
The `pi-only` variant is built with `INSTALL_OPENCODE=false`, so this image
stays lean and pi-focused — it does **not** carry opencode, and remains
distinct from `opencode-devbox:latest-with-pi` (which has both).
### Added (inherited from the pi-only variant)
- **`fork` tool** (pi-fork) and **`recall` tool** (pi-observational-memory),
baked into `/opt` with `node_modules` and registered at runtime.
@@ -27,15 +31,12 @@ used to drift against `opencode-devbox/Dockerfile.variant`.
### Consequences / notes
- Because it FROMs `with-pi`, the image **now also contains opencode**. If a
leaner pi-only image is wanted, add a pi-only variant to opencode-devbox and
FROM that instead.
- **Publish ordering**: release opencode-devbox first so `latest-with-pi`
- **Publish ordering**: release opencode-devbox first so `latest-pi-only`
carries the target pi version, *then* tag this repo. The smoke test asserts
`pi --version` matches the tag and fails loudly if the base is stale.
- CI no longer passes `PI_VERSION` as a build-arg (the Dockerfile installs
nothing); it still resolves the tag version to feed the smoke base-freshness
guard. Smoke size threshold 2200 → 2900 MB (now tracks with-pi).
guard. Smoke size threshold 2200 → 2750 MB (now tracks the pi-only variant).
_pi version unchanged at `0.78.0` (still latest)._