Switch to directory mount for opencode config, update docs with make
Mount ~/.config/opencode as a directory instead of individual files. This persists all config changes (opencode.json, oh-my-opencode-slim.json, skills) across container restarts. Add make to README architecture diagram.
This commit is contained in:
+9
-19
@@ -184,28 +184,27 @@ Understanding what survives container restarts and what doesn't:
|
||||
| `/home/developer/.ssh` | Host bind mount (ro) | ✅ Yes — lives on host | SSH keys |
|
||||
| `/home/developer/.aws` | Host bind mount | ✅ Yes — lives on host | AWS credentials/SSO cache |
|
||||
| `/home/developer/.local/share/opencode` | Named volume (if configured) | ✅ Yes — Docker volume | Session history, memory, auth tokens |
|
||||
| `/home/developer/.config/opencode/opencode.json` | Generated by entrypoint | ❌ No — regenerated each start | Provider config, MCP server definitions |
|
||||
| `/home/developer/.config/opencode/oh-my-opencode-slim.json` | Generated by entrypoint (OMOS variant) | ❌ No — regenerated each start | Agent/model mappings |
|
||||
| `/home/developer/.config/opencode` | Host bind mount (if configured) | ✅ Yes — lives on host | opencode.json, oh-my-opencode-slim.json, skills |
|
||||
|
||||
### Key points
|
||||
|
||||
- **Project files** (`/workspace`) are always safe — they're your host filesystem.
|
||||
- **opencode config** is auto-generated from `OPENCODE_PROVIDER` env var on each start. It only sets provider and model — no MCP servers. To persist MCP server config, mount your own config file (see Custom opencode Config below).
|
||||
- **opencode config** is auto-generated from `OPENCODE_PROVIDER` env var on each start if no existing config is found. To persist config changes, mount the config directory from the host (see Custom opencode Config below).
|
||||
- **opencode data** (session history, memory) is lost with `--rm` unless you add a named volume.
|
||||
- **AWS SSO tokens** persist across restarts when `~/.aws` is mounted (recommended for Bedrock users).
|
||||
|
||||
## Custom opencode Config
|
||||
|
||||
For full control (MCP servers, custom models, keybindings), mount your own config:
|
||||
For full control over opencode settings (MCP servers, custom models, oh-my-opencode-slim agents, etc.), mount the entire config directory from the host:
|
||||
|
||||
```bash
|
||||
docker run -it --rm \
|
||||
-v ./my-opencode.json:/home/developer/.config/opencode/opencode.json:ro \
|
||||
-v ~/.config/opencode:/home/developer/.config/opencode \
|
||||
... \
|
||||
joakimp/opencode-devbox:latest
|
||||
```
|
||||
|
||||
When a config file is mounted, the `OPENCODE_PROVIDER` auto-config is skipped.
|
||||
This persists all configuration changes across container restarts. When an existing `opencode.json` is found, the `OPENCODE_PROVIDER` auto-config is skipped.
|
||||
|
||||
## Neovim Configuration
|
||||
|
||||
@@ -257,10 +256,9 @@ services:
|
||||
- devbox-data:/home/developer/.local/share/opencode
|
||||
# Mount AWS config for Bedrock SSO (required for amazon-bedrock provider)
|
||||
# - ~/.aws:/home/developer/.aws
|
||||
# Optional: mount your own opencode config (MCP servers, custom models, etc.)
|
||||
# - ./opencode.json:/home/developer/.config/opencode/opencode.json:ro
|
||||
# Optional: mount opencode skills from host
|
||||
# - ~/.config/opencode/skills:/home/developer/.config/opencode/skills:ro
|
||||
# Optional: mount opencode config directory (persists config changes across restarts)
|
||||
# - ~/.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
|
||||
@@ -347,15 +345,7 @@ On first start, the entrypoint configures oh-my-opencode-slim automatically. The
|
||||
|
||||
### Custom OMOS configuration
|
||||
|
||||
Mount your own config to control which models power each agent:
|
||||
|
||||
```bash
|
||||
docker run -it --rm \
|
||||
-e ENABLE_OMOS=true \
|
||||
-v ./oh-my-opencode-slim.json:/home/developer/.config/opencode/oh-my-opencode-slim.json:ro \
|
||||
... \
|
||||
joakimp/opencode-devbox:latest-omos
|
||||
```
|
||||
If you mount the opencode config directory (see Custom opencode Config above), the `oh-my-opencode-slim.json` file is included and persists across restarts. Edit it directly to control which models power each agent, fallback chains, council setup, and more.
|
||||
|
||||
See the [oh-my-opencode-slim configuration docs](https://github.com/alvinunreal/oh-my-opencode-slim/blob/master/docs/configuration.md) for the full reference.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user