TOP PRIORITY: docker build . fails on next #261

Open
opened 2026-10-02 01:02:26 +02:00 by clawbot · 3 comments
Collaborator

Owner (chat, 2026-10-01 ~23:03 UTC):

"docker build ." in upaas root on next fails

Standing rule from the same hour (sneak/project-management#20): main and next are green on every managed repo at all times, and any divergence is top priority. This comes before all other upaas work.

Definition of done:

  • Reproduce on a fresh clone of the next head (docker build . in the repo root, plus script/cibuild or make check), and post the failing step and its cause here in a few lines.
  • Fix it at the cause, through a PR to next with an independent review, rebased onto next right before the review, then squashed. Never weaken a test.
  • After the squash, docker build . and the check pass on a fresh clone of the new next head. One line here says so, with the SHA.
  • Say whether any PR merged today (for example #256) caused it, and why its review did not catch it.

model: opus-5-5

Owner (chat, 2026-10-01 ~23:03 UTC): > "docker build ." in upaas root on next fails Standing rule from the same hour (https://git.eeqj.de/sneak/project-management/issues/20): `main` and `next` are green on every managed repo at all times, and any divergence is top priority. This comes before all other upaas work. Definition of done: - Reproduce on a fresh clone of the `next` head (`docker build .` in the repo root, plus `script/cibuild` or `make check`), and post the failing step and its cause here in a few lines. - Fix it at the cause, through a PR to `next` with an independent review, rebased onto `next` right before the review, then squashed. Never weaken a test. - After the squash, `docker build .` and the check pass on a fresh clone of the new `next` head. One line here says so, with the SHA. - Say whether any PR merged today (for example https://git.eeqj.de/sneak/upaas/pulls/256) caused it, and why its review did not catch it. model: opus-5-5
clawbot self-assigned this 2026-10-02 01:02:26 +02:00
Author
Collaborator

Not reproduced yet. On a fresh clone of next at 5ca1bce, docker build . succeeds here (Docker Engine 29.8, linux/amd64), and make check passes on the same tree. The merge commit 5ca1bce changes no files compared with 9488e2f, so it is not the cause.

So the failure depends on the machine or the working copy it runs in. The leading suspect: since #236 (a48d90f), .dockerignore sends the working copy's whole .git directory and every git-ignored file except .env, bin/, .vscode/, .idea/ and *.test into the build. A fresh clone has none of those local files, and the review of 236 gated only fresh clones, which is why it passed.

@sneak: which step fails, and with what error? The last 20 or so lines of docker build --progress=plain ., plus the machine (OS, CPU) and docker version, are enough. Until then a worker is checking the build against a working copy with typical local files.

Model: opus-5-5

Not reproduced yet. On a fresh clone of `next` at `5ca1bce`, `docker build .` succeeds here (Docker Engine 29.8, linux/amd64), and `make check` passes on the same tree. The merge commit `5ca1bce` changes no files compared with `9488e2f`, so it is not the cause. So the failure depends on the machine or the working copy it runs in. The leading suspect: since https://git.eeqj.de/sneak/upaas/issues/236 (`a48d90f`), `.dockerignore` sends the working copy's whole `.git` directory and every git-ignored file except `.env`, `bin/`, `.vscode/`, `.idea/` and `*.test` into the build. A fresh clone has none of those local files, and the review of 236 gated only fresh clones, which is why it passed. @sneak: which step fails, and with what error? The last 20 or so lines of `docker build --progress=plain .`, plus the machine (OS, CPU) and `docker version`, are enough. Until then a worker is checking the build against a working copy with typical local files. Model: opus-5-5
sneak was assigned by clawbot 2026-10-02 01:11:01 +02:00
Author
Collaborator

Still not reproduced, on next at 7685812. Tried here:

  • docker build . and make docker from a working copy set up like a developer's: make bootstrap run (so node_modules/ exists), git-ignored local files (.env.local, a *.key, a *.out, .DS_Store), the data/ directory upaasd creates when run from the checkout, and an uncommitted change. The build does not fail.
  • make test, run as the build runs it, on one CPU and on two: every package stays far inside the 30-second limit, so a slower machine is not the cause.
  • A .git that is a file pointing outside the checkout, and core.fsmonitor set in .git/config as on macOS: neither breaks the build.

Not tested: an arm64 machine such as an Apple Silicon Mac (no emulation on this host).

None of the 2026-10-01 merges, #256 included, changes the Dockerfile, .dockerignore, the Makefile, script/ or the dependencies. The only change on next that makes the build depend on the working copy is #236 (a48d90f, 2026-09-29).

Found on the way, not this failure: since #236 the build stages receive the working copy's git-ignored secrets (.env.local, *.key, data/session.key); the final image holds only the binary. data/, the default data directory, is not git-ignored.

No fix opened: there is no known cause to fix. @sneak: still needed are the last 20 or so lines of docker build --progress=plain . from the copy where it fails, and the machine (OS, CPU).

Model: opus-5-5

Still not reproduced, on `next` at `7685812`. Tried here: - `docker build .` and `make docker` from a working copy set up like a developer's: `make bootstrap` run (so `node_modules/` exists), git-ignored local files (`.env.local`, a `*.key`, a `*.out`, `.DS_Store`), the `data/` directory upaasd creates when run from the checkout, and an uncommitted change. The build does not fail. - `make test`, run as the build runs it, on one CPU and on two: every package stays far inside the 30-second limit, so a slower machine is not the cause. - A `.git` that is a file pointing outside the checkout, and `core.fsmonitor` set in `.git/config` as on macOS: neither breaks the build. Not tested: an arm64 machine such as an Apple Silicon Mac (no emulation on this host). None of the 2026-10-01 merges, https://git.eeqj.de/sneak/upaas/pulls/256 included, changes the `Dockerfile`, `.dockerignore`, the `Makefile`, `script/` or the dependencies. The only change on `next` that makes the build depend on the working copy is https://git.eeqj.de/sneak/upaas/issues/236 (`a48d90f`, 2026-09-29). Found on the way, not this failure: since https://git.eeqj.de/sneak/upaas/issues/236 the build stages receive the working copy's git-ignored secrets (`.env.local`, `*.key`, `data/session.key`); the final image holds only the binary. `data/`, the default data directory, is not git-ignored. No fix opened: there is no known cause to fix. @sneak: still needed are the last 20 or so lines of `docker build --progress=plain .` from the copy where it fails, and the machine (OS, CPU). Model: opus-5-5
Author
Collaborator

next at d3b9c6f passes docker build . and make check on a fresh clone here. Since the last report two changes narrowed what the build receives from a working copy: git-ignored files and data/ stay out (#266) and so does .git/config (#269). If the failure came from local files in your copy, it may be gone.

@sneak: please run docker build --progress=plain . again on d3b9c6f where it failed; if it still fails, the last 20 or so lines and the machine (OS, CPU) are what is needed.

Model: opus-5-5

`next` at `d3b9c6f` passes `docker build .` and `make check` on a fresh clone here. Since the last report two changes narrowed what the build receives from a working copy: git-ignored files and `data/` stay out (https://git.eeqj.de/sneak/upaas/issues/266) and so does `.git/config` (https://git.eeqj.de/sneak/upaas/issues/269). If the failure came from local files in your copy, it may be gone. @sneak: please run `docker build --progress=plain .` again on `d3b9c6f` where it failed; if it still fails, the last 20 or so lines and the machine (OS, CPU) are what is needed. 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/upaas#261