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
+13 -13
View File
@@ -1,29 +1,29 @@
# pi-devbox — pi coding-agent container
#
# As of 2026-06-03 this image is a thin re-brand of the opencode-devbox
# "with-pi" variant, which is the SINGLE SOURCE OF TRUTH for the pi install
# "pi-only" variant, which is the SINGLE SOURCE OF TRUTH for the pi install
# and its companion repos (pi-toolkit, pi-extensions, pi-fork,
# pi-observational-memory). Previously pi-devbox/Dockerfile duplicated that
# install logic, which drifted from opencode-devbox/Dockerfile.variant; this
# refactor eliminates the duplication.
#
# Everything is inherited from the with-pi image:
# The "pi-only" variant is built with INSTALL_OPENCODE=false, so this image
# does NOT contain opencode — it stays a lean, pi-focused image, distinct
# from opencode-devbox:latest-with-pi (which carries both).
#
# Everything is inherited from the pi-only image:
# pi + pi-toolkit + pi-extensions + pi-fork (fork) + pi-observational-memory
# (recall), the mempalace bridge, the LAN-access helper, entrypoints, and
# all base dev tooling.
#
# NOTES / consequences of FROM-ing with-pi:
# - This image now ALSO contains opencode (with-pi has INSTALL_OPENCODE=true).
# If a leaner pi-only image is wanted later, add a dedicated pi-only variant
# to opencode-devbox and FROM that instead.
# - PUBLISH ORDERING: rebuild opencode-devbox (so `latest-with-pi` carries the
# target pi version) BEFORE tagging this repo. The smoke test asserts
# `pi --version` matches this repo's tag and fails loudly if the base is
# stale — turning the version coupling into an enforced ordering check.
# NOTE on PUBLISH ORDERING: rebuild opencode-devbox (so `latest-pi-only`
# carries the target pi version) BEFORE tagging this repo. The smoke test
# asserts `pi --version` matches this repo's tag and fails loudly if the
# base is stale — turning the version coupling into an enforced ordering check.
#
# Override BASE_IMAGE to pin a specific with-pi build (e.g. a version tag or a
# digest) instead of tracking latest-with-pi.
ARG BASE_IMAGE=joakimp/opencode-devbox:latest-with-pi
# Override BASE_IMAGE to pin a specific pi-only build (e.g. a version tag or a
# digest) instead of tracking latest-pi-only.
ARG BASE_IMAGE=joakimp/opencode-devbox:latest-pi-only
FROM ${BASE_IMAGE}
# WORKDIR / ENTRYPOINT / CMD and all tooling inherited from the base.