Dev backend reloads on worker edits too: fastapi dev with --reload-dir over backend and worker, worker in develop.watch

This commit is contained in:
2026-10-14 23:34:07 +02:00
parent 245e68449f
commit ef9d9824bb
2 changed files with 17 additions and 5 deletions
+4 -3
View File
@@ -66,9 +66,10 @@ Standalone (`cd app && make dev`) publishes the full set:
## Hot reload, and what it misses
`compose.dev.yml` bind-mounts `backend/fluksio` into the api container and runs uvicorn with
`--reload`, so a backend edit is live. The `develop.watch` block next to it syncs the same
directory, but only under `docker compose watch`, which no target runs — the detached
`compose.dev.yml` bind-mounts `backend/fluksio` and `worker/fluksio_worker` into the api
container and runs uvicorn with `--reload` over both, so a backend edit is live and a worker
edit restarts the engine along with its local workers. The `develop.watch` block next to it
syncs the same directories, but only under `docker compose watch`, which no target runs — the detached
`up -d` flow never triggers it. The mount is what does the work, so an api container created
before the mount existed keeps serving the source baked into its image and has to be
recreated once.
+13 -2
View File
@@ -92,10 +92,18 @@ services:
build:
context: ..
dockerfile: backend/Dockerfile
# `fastapi dev`, because `run` takes no `--reload-dir`. Watching the worker
# too makes a worker edit restart the engine, which respawns the local
# worker pool with the new code.
command:
- fastapi
- run
- --reload
- dev
- --host
- 0.0.0.0
- --reload-dir
- /app/backend
- --reload-dir
- /app/worker
- "fluksio/main.py"
develop:
watch:
@@ -107,6 +115,9 @@ services:
- .venv
- path: ../backend/pyproject.toml
action: rebuild
- path: ../worker/fluksio_worker
action: sync
target: /app/worker/fluksio_worker
volumes:
# What makes --reload above mean anything in the detached flow (`make dev`,
# `make dev-local`): it starts the stack with `up -d`, which never runs the