# pi-devbox — pi coding-agent container # # As of 2026-06-03 this image is a thin re-brand of the "pi-only" build, which # is the SINGLE SOURCE OF TRUTH for the pi install and its companion repos # (pi-toolkit, pi-extensions, pi-fork, pi-observational-memory). That build is # produced by opencode-devbox's CI (from opencode-devbox/Dockerfile.variant # with INSTALL_OPENCODE=false), but is published as an INTERNAL building-block # tag in THIS repo — joakimp/pi-devbox:base-pi-only — NOT under opencode-devbox. # Rationale: an "opencode-devbox" tag containing no opencode confuses # opencode-devbox users, so the pi-only artifact lives here instead. # Previously pi-devbox/Dockerfile duplicated the install logic, which drifted # from opencode-devbox/Dockerfile.variant; this refactor eliminates the dup. # # The pi-only build uses 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 build: # 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. # # NOTE on PUBLISH ORDERING: rebuild opencode-devbox (so `base-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. # # base-pi-only is an internal building-block alias (existence-only, not for # end users — pull joakimp/pi-devbox:latest or a vX.Y.Z tag instead). Override # BASE_IMAGE to pin a specific pi-only build (a version tag or a digest). ARG BASE_IMAGE=joakimp/pi-devbox:base-pi-only FROM ${BASE_IMAGE} # WORKDIR / ENTRYPOINT / CMD and all tooling inherited from the base. # No additional layers — the value here is the single-source-of-truth refactor.