c139be326f
pi-devbox no longer installs pi itself. The Dockerfile is now a thin FROM joakimp/opencode-devbox:latest-with-pi (overridable via BASE_IMAGE), inheriting pi + pi-toolkit + pi-extensions + pi-fork (fork) + pi-observational-memory (recall) + the LAN-access helper + all base tooling from the single source of truth. Eliminates the install-logic duplication that drifted against opencode-devbox/Dockerfile.variant (decision #3). Consequences (documented in CHANGELOG/AGENTS): - The image now ALSO contains opencode (with-pi has INSTALL_OPENCODE=true). A leaner pi-only image would need a dedicated pi-only variant upstream. - Publish ordering: release opencode-devbox first so latest-with-pi carries the target pi version, THEN tag this repo. The smoke test asserts pi --version matches the tag (EXPECTED_PI_VERSION) and fails loudly if the base is stale — turning the version coupling into an enforced ordering guard. CI: drop PI_VERSION build-arg (Dockerfile installs nothing); keep tag->version resolution to feed the smoke base-freshness guard. Smoke adds fork/recall clone + node_modules + settings.json registration checks; size threshold 2200 -> 2900 MB (now tracks with-pi). Docs updated across README, AGENTS, DOCKER_HUB, .env.example, docker-compose.
74 lines
2.2 KiB
YAML
74 lines
2.2 KiB
YAML
# pi-devbox docker-compose
|
|
#
|
|
# Usage:
|
|
# cp .env.example .env # configure your keys
|
|
# docker compose up -d
|
|
# docker compose exec -u developer devbox pi
|
|
#
|
|
# Or for interactive one-shot:
|
|
# docker compose run --rm devbox
|
|
|
|
name: pi-devbox
|
|
|
|
services:
|
|
devbox:
|
|
image: joakimp/pi-devbox:latest
|
|
# To build from source instead of pulling from Docker Hub:
|
|
# build:
|
|
# context: .
|
|
# args:
|
|
# # Pin a specific with-pi build instead of tracking latest-with-pi:
|
|
# BASE_IMAGE: "joakimp/opencode-devbox:v1.15.13-with-pi"
|
|
container_name: pi-devbox
|
|
stdin_open: true
|
|
tty: true
|
|
env_file:
|
|
- .env
|
|
environment:
|
|
- TERM=xterm-256color
|
|
- GITEA_ACCESS_TOKEN=${GITEA_ACCESS_TOKEN:-}
|
|
- GITEA_HOST=${GITEA_HOST:-}
|
|
- GITHUB_PERSONAL_ACCESS_TOKEN=${GITHUB_PERSONAL_ACCESS_TOKEN:-}
|
|
volumes:
|
|
# Host workspace — mount your project here
|
|
- ${WORKSPACE_PATH:-.}:/workspace
|
|
|
|
# SSH keys (read-only) — for git push/pull
|
|
- ${SSH_KEY_PATH:-~/.ssh}:/home/developer/.ssh:ro
|
|
|
|
# Optional: mount skillset repo for automatic skill/instruction deployment.
|
|
# - ${SKILLSET_PATH}:/home/developer/skillset
|
|
|
|
# Persist pi config (settings.json, extensions, sessions, auth)
|
|
- devbox-pi-config:/home/developer/.pi
|
|
|
|
# Persist bash history across container recreations
|
|
- devbox-shell-history:/home/developer/.cache/bash
|
|
|
|
# Persist zoxide directory history
|
|
- devbox-zoxide:/home/developer/.local/share/zoxide
|
|
|
|
# Persist neovim plugin/Mason data
|
|
- devbox-nvim-data:/home/developer/.local/share/nvim
|
|
|
|
# Persist uv data (Python installs, tool installs)
|
|
- devbox-uv:/home/developer/.local/share/uv
|
|
|
|
# Optional: persist MemPalace data (conversation memory, knowledge graph)
|
|
# - devbox-palace:/home/developer/.mempalace
|
|
|
|
# Optional: persist ChromaDB embedding model cache (~79 MB)
|
|
# - devbox-chroma-cache:/home/developer/.cache/chroma
|
|
|
|
# Optional: AWS credentials/SSO config
|
|
# - ~/.aws:/home/developer/.aws
|
|
|
|
volumes:
|
|
devbox-pi-config:
|
|
devbox-shell-history:
|
|
devbox-zoxide:
|
|
devbox-nvim-data:
|
|
devbox-uv:
|
|
# devbox-palace:
|
|
# devbox-chroma-cache:
|