-
Notifications
You must be signed in to change notification settings - Fork 0
US-3: Docker multi-stage build and Docker Compose deployment #9
Copy link
Copy link
Open
Labels
infrastructureSetup, DevOps, deployment, project scaffoldingSetup, DevOps, deployment, project scaffoldingmust-haveMoSCoW: Must Have — MVP criticalMoSCoW: Must Have — MVP criticaluser-storyA single INVEST-compliant user storyA single INVEST-compliant user story
Description
Epic
Part of #1 (EPIC-1 — Project Scaffold & Infrastructure)
User Story
As the owner self-hosting Procastimarks,
I want to start the application with a single docker compose up command,
so that deployment and upgrades require no manual steps.
Acceptance Criteria
-
docker build .succeeds and produces an image < 200 MB - Multi-stage Dockerfile: stage 1 compiles the Rust binary; stage 2 is a minimal
runtime image containing only the binary and static assets -
docker compose upstarts the container and the/healthendpoint responds - SQLite database file is stored on a named Docker volume (survives
docker compose downwithout-v) - README (or compose file comment) explicitly warns that
docker compose down -v
destroys all data (C-8) -
API_KEYenvironment variable is passed viadocker-compose.yml(or.envfile)
INVEST
| Criterion | Notes |
|---|---|
| Independent | Can be started in parallel with US-8 after US-7 |
| Negotiable | Base image choice is open |
| Valuable | Delivery mechanism for the self-hosted product |
| Estimable | ~half a day |
| Small | Infra only; no feature logic |
| Testable | docker compose up + health check is concrete |
Technical Notes (arc42 §7)
crossorcargo-leptosbuild inside the Docker build stage- WASM assets copied into the runtime image
- Named volume mounted at
/data;DATABASE_URL=/data/procastimarks.db - ATAM condition C-8: data-loss warning must be present in docs
Dependencies
- Depends on: US-1: Cargo workspace and Leptos project scaffold #7 (US-1)
MoSCoW: Must Have
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
infrastructureSetup, DevOps, deployment, project scaffoldingSetup, DevOps, deployment, project scaffoldingmust-haveMoSCoW: Must Have — MVP criticalMoSCoW: Must Have — MVP criticaluser-storyA single INVEST-compliant user storyA single INVEST-compliant user story