Summary
The api container expects themes at `/themes` (named volume `api-themes` in compose). After `docker compose down -v` the volume is empty and the customizer 500s with "failed to load theme 'gn-hello'".
The fix during the recent session was to manually `docker run --rm -v api-themes:/themes alpine cp` from the repo's `themes/` directory. Not persistent, not documented.
Fix
The `migrate` service (`cli/gonext` Dockerfile already COPYs `themes/` to `/themes` at line ~42) should ensure the volume is seeded as part of its idempotent boot:
- On migrate run, check if `/themes/gn-hello` exists in the volume.
- If not, copy from the image's bundled `/themes` (where the Dockerfile dropped them).
- Make this part of the existing `gonext migrate` command, or add a `gonext seed-themes` subcommand the migrate service calls.
Files to touch
- `cli/gonext/cmd/init/` or `cli/gonext/cmd/migrate/` — add theme-seed step
- `docker-compose.dev.yml` — verify migrate service mounts `api-themes` (currently only `api` mounts it)
Summary
The api container expects themes at `/themes` (named volume `api-themes` in compose). After `docker compose down -v` the volume is empty and the customizer 500s with "failed to load theme 'gn-hello'".
The fix during the recent session was to manually `docker run --rm -v api-themes:/themes alpine cp` from the repo's `themes/` directory. Not persistent, not documented.
Fix
The `migrate` service (`cli/gonext` Dockerfile already COPYs `themes/` to `/themes` at line ~42) should ensure the volume is seeded as part of its idempotent boot:
Files to touch