Files
opencode-devbox/docker-compose.yml
T

77 lines
2.6 KiB
YAML

# opencode-devbox docker-compose
#
# Usage:
# cp .env.example .env # configure your provider and keys
# docker compose up -d
# docker compose exec -u developer devbox opencode
#
# Or for interactive one-shot:
# docker compose run --rm devbox
services:
devbox:
image: joakimp/opencode-devbox:latest
# For multi-agent orchestration, use the omos variant instead:
# image: joakimp/opencode-devbox:latest-omos
#
# To build from source instead of pulling from Docker Hub, uncomment:
# build:
# context: .
# args:
# INSTALL_PYTHON: "false"
# INSTALL_GO: "false"
# INSTALL_OMOS: "false"
container_name: opencode-devbox
stdin_open: true
tty: true
env_file:
- .env
environment:
- TERM=xterm-256color
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 opencode config directory (persists config changes across restarts)
# Includes opencode.json, oh-my-opencode-slim.json, skills, etc.
# When mounted, OPENCODE_PROVIDER auto-config is skipped if opencode.json exists.
# - ~/.config/opencode:/home/developer/.config/opencode
# Optional: mount opencode agent skills from host
# - ~/.agents/skills:/home/developer/.agents/skills:ro
# Optional: mount neovim config from host (plugins auto-install on first start)
# - ~/.config/nvim:/home/developer/.config/nvim:ro
# Optional: persist opencode data (auth, memory, etc.)
- devbox-data:/home/developer/.local/share/opencode
# Optional: persist opencode TUI settings (theme, toggles, etc.)
- devbox-state:/home/developer/.local/state/opencode
# Optional: persist uv data (Python installs, tool installs)
# Without this, 'uv python install' must be re-run after container removal.
- devbox-uv:/home/developer/.local/share/uv
# Optional: persist Rust toolchains and cargo data
# Without this, 'rustup-init' must be re-run after container removal.
# - devbox-rustup:/home/developer/.rustup
# - devbox-cargo:/home/developer/.cargo
# Optional: persist VS Code server and extensions across container recreations
# - devbox-vscode:/home/developer/.vscode-server
# Optional: AWS credentials/SSO config (not read-only — SSO writes token cache)
# - ~/.aws:/home/developer/.aws
volumes:
devbox-data:
devbox-state:
devbox-uv:
# devbox-rustup:
# devbox-cargo:
# devbox-vscode: