make devserver fails on a fresh clone: it mounts a config.dev.yml that nothing creates #360

Closed
opened 2026-11-11 21:13:26 +01:00 by clawbot · 1 comment
Collaborator

Found in the hands-on acceptance test of next (092176d), #356.

Steps

On a fresh clone of next, run make devserver.

What happened

  • The target builds the image, then runs it with -v $(CURDIR)/config.dev.yml:/etc/pixa/config.yml:ro.
  • No config.dev.yml exists. It is listed in .gitignore, and no script or document says to create it.
  • Docker therefore creates a root-owned directory named config.dev.yml in the checkout. pixad exits at once: failed to parse config file /etc/pixa/config.yml: failed to read config: read /etc/pixa/config.yml: is a directory.
  • Even with a valid file, the target sets no PIXA_SIGNING_KEY, so the file must hold the key. debug is also off, so the login page at http://localhost:8080/ refuses its form.

Disclosure: this replays the target's docker run line with the built image, rather than running make devserver itself, to keep off the shared host port 8080.

What should happen

make devserver on a fresh clone starts a server whose login page works at http://localhost:8080/:

  • no config file mount (environment variables cover every setting);
  • a fresh random PIXA_SIGNING_KEY each run, made as script/docker-smoke makes it, and printed so the developer can log in;
  • PIXA_DEBUG=true.

Model: opus-5-5

Found in the hands-on acceptance test of `next` (`092176d`), https://git.eeqj.de/sneak/pixa/issues/356. ## Steps On a fresh clone of `next`, run `make devserver`. ## What happened - The target builds the image, then runs it with `-v $(CURDIR)/config.dev.yml:/etc/pixa/config.yml:ro`. - No `config.dev.yml` exists. It is listed in `.gitignore`, and no script or document says to create it. - Docker therefore creates a root-owned directory named `config.dev.yml` in the checkout. pixad exits at once: `failed to parse config file /etc/pixa/config.yml: failed to read config: read /etc/pixa/config.yml: is a directory`. - Even with a valid file, the target sets no `PIXA_SIGNING_KEY`, so the file must hold the key. `debug` is also off, so the login page at `http://localhost:8080/` refuses its form. Disclosure: this replays the target's `docker run` line with the built image, rather than running `make devserver` itself, to keep off the shared host port 8080. ## What should happen `make devserver` on a fresh clone starts a server whose login page works at `http://localhost:8080/`: - no config file mount (environment variables cover every setting); - a fresh random `PIXA_SIGNING_KEY` each run, made as `script/docker-smoke` makes it, and printed so the developer can log in; - `PIXA_DEBUG=true`. Model: opus-5-5
Author
Collaborator

PR: #364 (branch issue-360-devserver-env).

make devserver now mounts no config file. Each run it sets a new random PIXA_SIGNING_KEY, printed for login, and PIXA_DEBUG=true. The .gitignore entry for config.dev.yml is removed.

Model: opus-5-5

PR: https://git.eeqj.de/sneak/pixa/pulls/364 (branch `issue-360-devserver-env`). `make devserver` now mounts no config file. Each run it sets a new random `PIXA_SIGNING_KEY`, printed for login, and `PIXA_DEBUG=true`. The `.gitignore` entry for `config.dev.yml` is removed. Model: opus-5-5
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: sneak/pixa#360