fix: mount src and data volumes in container targets

Bind-mount src/ and data/ alongside plugins/ and config so the
container picks up code changes without rebuilding. Update Makefile
targets, compose file, and INSTALL.md to match.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
user
2026-02-15 16:11:59 +01:00
parent 26063a0e8f
commit 7520bba192
3 changed files with 14 additions and 6 deletions

View File

@@ -42,10 +42,12 @@ link: install ## Symlink to ~/.local/bin
build: ## Build container image build: ## Build container image
podman build -t $(APP_NAME) . podman build -t $(APP_NAME) .
container-run: ## Run bot in container (mount config + plugins) container-run: ## Run bot in container (mount code + config + data)
podman run -d --name $(APP_NAME) \ podman run -d --name $(APP_NAME) \
-v ./config/derp.toml:/app/config/derp.toml:ro,Z \ -v ./src:/app/src:ro,Z \
-v ./plugins:/app/plugins:ro,Z \ -v ./plugins:/app/plugins:ro,Z \
-v ./config/derp.toml:/app/config/derp.toml:ro,Z \
-v ./data:/app/data:Z \
$(APP_NAME) $(APP_NAME)
container-stop: ## Stop and remove container container-stop: ## Stop and remove container
@@ -57,8 +59,8 @@ container-logs: ## Follow container logs
update-data: ## Download/refresh local data files update-data: ## Download/refresh local data files
./scripts/update-data.sh ./scripts/update-data.sh
up: ## Start with podman-compose (build + detach) up: ## Start with podman-compose (detach)
podman-compose up -d --build podman-compose up -d
down: ## Stop with podman-compose down: ## Stop with podman-compose
podman-compose down podman-compose down

View File

@@ -9,4 +9,5 @@ services:
- ./src:/app/src:ro,Z - ./src:/app/src:ro,Z
- ./plugins:/app/plugins:ro,Z - ./plugins:/app/plugins:ro,Z
- ./config/derp.toml:/app/config/derp.toml:ro,Z - ./config/derp.toml:/app/config/derp.toml:ro,Z
- ./data:/app/data:Z
command: ["--verbose"] command: ["--verbose"]

View File

@@ -54,12 +54,17 @@ make up
```bash ```bash
podman build -t derp . podman build -t derp .
podman run -d --name derp \ podman run -d --name derp \
-v ./config/derp.toml:/app/config/derp.toml:ro,Z \ -v ./src:/app/src:ro,Z \
-v ./plugins:/app/plugins:ro,Z \ -v ./plugins:/app/plugins:ro,Z \
-v ./config/derp.toml:/app/config/derp.toml:ro,Z \
-v ./data:/app/data:Z \
derp --verbose derp --verbose
``` ```
The image contains only the Python package. Config and plugins are bind-mounted at runtime, so edits on the host are picked up by `!reload` without rebuilding. The image contains only the Python runtime and compiled dependencies. Source
code, plugins, config, and data are bind-mounted at runtime. Code and plugin
edits on the host take effect on restart (or via `!reload` for plugins).
Only rebuild the image when adding or updating pip dependencies.
## Configuration ## Configuration