Files
roux/docker-compose.yml
jbrechtel 460b7d0fdc
Build and Deploy / build-and-deploy (push) Successful in 2m43s
Store cook log DB in writable data dir, not read-only recipes mount
The cook log SQLite DB was created at recipeDir/cook-log.db. In the Docker
deployment /recipes is mounted read-only, so SQLite could never create the
file there — the cook log has never worked in the container. The writable
/data volume was mounted but unused.

- initDb now creates the DB's parent directory if missing, so startup
  initialization is self-contained and idempotent.
- app takes a dataDir and places cook-log.db there.
- Add optional --data-dir flag (defaults to the recipe dir, preserving
  local-dev behavior); Docker CMD passes --data-dir /data.

Verified end-to-end as root against a read-only recipe dir and a
non-existent data dir: the dir and DB are created and cook-log POST/GET
round-trips.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-12 21:53:35 -04:00

12 lines
386 B
YAML

services:
roux-server:
image: git.roo.lol/jbrechtel/roux:latest
restart: unless-stopped
ports:
- "127.0.0.1:8080:8080"
volumes:
# Cooklang source of truth, managed externally — mounted read-only.
- /srv/roux/recipes:/recipes:ro
# Writable app state (the cook log SQLite DB); see --data-dir in the Dockerfile CMD.
- /srv/roux/data:/data