US08-03 — Compose the Runtime and Mount the Library Safely #89
Notifications
Due Date
No due date set.
Blocks
Depends on
#90 US08-04 — Publish and Deploy from Gitea Actions
domverse/photoanalyzer
#91 US08-05 — Automate Container Deployment Acceptance
domverse/photoanalyzer
#87 US08-01 — Make the Trust Boundary Configurable and Authenticated
domverse/photoanalyzer
#88 US08-02 — Build a Reproducible Application Image
domverse/photoanalyzer
Reference: domverse/photoanalyzer#89
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Source specification: delivery_backlog/stories/US08-03-compose-runtime.md
US08-03 — Compose the Runtime and Mount the Library Safely
Epic: E08
As an operator, I want a single compose file that runs the API and the worker against my
real library, so a deployment is one command and the safety invariants survive it.
Context
The library process lock (US07-05) assumes both roles see the same lock file, and SQLite
in WAL mode assumes a real local filesystem. Container path policy is the same problem
as host path policy with a new failure mode: the configured library roots must name the
in-container mount paths, not the host paths.
Acceptance criteria
docker-compose.ymlruns exactly oneserveand oneworkercontainer from the sameimage and the same data volume, and a second worker is refused by the existing lock
rather than by convention.
PHOTO_PIPELINE_LIBRARY_ROOTSnames the container-sidepaths, and a mismatch between mounted and configured roots fails at startup with a
clear message instead of at the first write.
filesystem; the composition documents that a network mount is unsupported for it.
serveandworkeraccept work, using the existing backup-then-migrate path, and an upgrade that fails leaves the previous database intact.
committed file; a
.env.examplelists everyPHOTO_PIPELINE_*variable with safedefaults and no values.
the configured hostname and access secret from US08-01.
restart does today.
and work against the mounted volumes.
Automated tests
runs a job, restarts both containers, and asserts the job resumes and the database is
intact.
migration leaving the previous database restorable.
Dependencies
Claimed for implementation on branch
us/US08-03-compose-the-runtime-and-mount-the-library-safely.