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:
10
Makefile
10
Makefile
@@ -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
|
||||||
|
|||||||
@@ -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"]
|
||||||
|
|||||||
@@ -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
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user