refactor: build FROM joakimp/pi-devbox:base-pi-only (Option B)
The pi-only building block now lives in this repo as the internal base-pi-only tag (produced by opencode-devbox CI from Dockerfile.variant, INSTALL_OPENCODE=false) instead of opencode-devbox:latest-pi-only — so an 'opencode-devbox' tag never ships without opencode. - Dockerfile: BASE_IMAGE default joakimp/opencode-devbox:latest-pi-only -> joakimp/pi-devbox:base-pi-only. - Updated README, AGENTS, DOCKER_HUB, docker-compose, CHANGELOG. - Single source of truth unchanged (opencode-devbox/Dockerfile.variant); publish ordering + EXPECTED_PI_VERSION smoke guard unchanged.
This commit is contained in:
@@ -9,10 +9,14 @@ A Docker container with [pi coding-agent](https://github.com/earendil-works/pi)
|
||||
|
||||
## What's inside
|
||||
|
||||
pi-devbox is a re-brand of the **opencode-devbox `pi-only` variant** — it `FROM`s
|
||||
`opencode-devbox:latest-pi-only` and adds no layers of its own. Everything below
|
||||
is inherited from that single source of truth. The pi-only variant is built with
|
||||
`INSTALL_OPENCODE=false`, so this image is lean and pi-focused — no opencode.
|
||||
pi-devbox is a thin re-brand of the **`pi-only` build** — it `FROM`s
|
||||
`joakimp/pi-devbox:base-pi-only` and adds no layers of its own. That base build
|
||||
is produced by opencode-devbox's CI (from `opencode-devbox/Dockerfile.variant`
|
||||
with `INSTALL_OPENCODE=false`, the single source of truth for the pi install +
|
||||
companions) but is published **into this repo** as the internal building-block
|
||||
tag `base-pi-only` — *not* under opencode-devbox, so an "opencode-devbox" tag
|
||||
never ships without opencode. Everything below is inherited from that build,
|
||||
which is lean and pi-focused — no opencode.
|
||||
|
||||
Base tooling:
|
||||
|
||||
@@ -208,7 +212,7 @@ Tags follow the pi npm package version: `v0.74.0`, `v0.75.0`, … `latest` alway
|
||||
|
||||
Container-level rebuilds on the same pi version (security updates, base bumps, fixes) get a letter suffix: `v0.74.0b`, `v0.74.0c`, …
|
||||
|
||||
The pi binary is inherited from `opencode-devbox:latest-pi-only`, so a release of this image must be preceded by an opencode-devbox release that bakes the target pi version into `latest-pi-only`. The smoke test enforces this (it asserts `pi --version` matches the tag).
|
||||
The pi binary is inherited from `joakimp/pi-devbox:base-pi-only`, so a release of this image must be preceded by an opencode-devbox release that bakes the target pi version into `base-pi-only`. The smoke test enforces this (it asserts `pi --version` matches the tag).
|
||||
|
||||
---
|
||||
|
||||
@@ -221,9 +225,9 @@ the base. To pin a specific pi-only build or hack on it:
|
||||
git clone https://gitea.jordbo.se/joakimp/pi-devbox
|
||||
cd pi-devbox
|
||||
|
||||
# Default tracks latest-pi-only; override BASE_IMAGE to pin a build:
|
||||
# Default tracks base-pi-only; override BASE_IMAGE to pin a build:
|
||||
docker compose build \
|
||||
--build-arg BASE_IMAGE=joakimp/opencode-devbox:v1.15.13-pi-only
|
||||
--build-arg BASE_IMAGE=joakimp/pi-devbox:base-pi-only-v1.15.13c
|
||||
|
||||
docker compose up -d
|
||||
```
|
||||
@@ -236,7 +240,7 @@ Build args supported:
|
||||
|
||||
| Arg | Default | Effect |
|
||||
|---|---|---|
|
||||
| `BASE_IMAGE` | `joakimp/opencode-devbox:latest-pi-only` | Parent image — set to a `:vX.Y.Z-pi-only` tag or a digest for reproducible builds |
|
||||
| `BASE_IMAGE` | `joakimp/pi-devbox:base-pi-only` | Parent image (internal building-block tag) — set to a `:base-pi-only-vX.Y.Z` tag or a digest for reproducible builds |
|
||||
|
||||
---
|
||||
|
||||
|
||||
Reference in New Issue
Block a user