The image build context is the module's own directory, so a Dockerfile in a subdirectory builds (issue 1703) #512

Merged
mesh-tools merged 1 commits from fix/1703-image-context into main 2026-10-26 20:36:09 +00:00
Member

Issue 1703 (note 18): mesh-build-image's build of photos' admin-client image failed on shanks (15:54) and ace (21:19) at COPY admin-client/package.json with copier: stat "/admin-client/package.json": no such file or directory. The build context was the Dockerfile's own directory; photos' three Dockerfiles (server/, client/, admin-client/) are written for the module's root, as the SDK's Artifact.From and the image fingerprint read it.

mesh-build-image now gives buildah the module's own directory as the context and the Dockerfile with --file. A Dockerfile at its module's root (n8n, link2pay) builds as before; the context never leaves the module (ADR 0487 §2 unchanged). ADR 0487 §1 corrected by a progressive insight, accepted on the operator's Approve 21:29.

Quick fix: move photos' Dockerfiles to its root (changes the operator's photos repository, leaves the trap). Thorough fix (chosen): one rule in the build module for every image module.

Photos is held for the operator's yes (policy record set 21:36 on the operator's word), so its first new images wait for them.

No try: this pull request's check is its only run.

Reviewed-by: review-img@shanks at dcf32576a8

Issue 1703 (note 18): mesh-build-image's build of photos' admin-client image failed on shanks (15:54) and ace (21:19) at `COPY admin-client/package.json` with copier: stat "/admin-client/package.json": no such file or directory. The build context was the Dockerfile's own directory; photos' three Dockerfiles (server/, client/, admin-client/) are written for the module's root, as the SDK's Artifact.From and the image fingerprint read it. mesh-build-image now gives buildah the module's own directory as the context and the Dockerfile with --file. A Dockerfile at its module's root (n8n, link2pay) builds as before; the context never leaves the module (ADR 0487 §2 unchanged). ADR 0487 §1 corrected by a progressive insight, accepted on the operator's Approve 21:29. Quick fix: move photos' Dockerfiles to its root (changes the operator's photos repository, leaves the trap). Thorough fix (chosen): one rule in the build module for every image module. Photos is held for the operator's yes (policy record set 21:36 on the operator's word), so its first new images wait for them. No try: this pull request's check is its only run. Reviewed-by: review-img@shanks at dcf32576a88071eadf7f7f13f37f62d7bfc0dc01
mesh-tools added 1 commit 2026-10-26 20:34:59 +00:00
mesh-build-image: build with the module's directory as context, so a Dockerfile in a subdirectory finds its COPY paths (issue 1703)
mesh/delivery merged: source.main moved to novox/mesh-catalog@eba4bab00aa7
mesh/check checking dcf32576a880 on eba4bab00aa7
dcf32576a8
photos' admin-client, client and server Dockerfiles live in subdirectories and copy
paths from the module's root (admin-client/..., client-server/serve.mjs), as build-agent
built them and as the fingerprint reads the module's whole directory. Taking the
Dockerfile's own directory as context failed every such COPY with copier: stat
"/admin-client/package.json": no such file or directory, on shanks and on ace.

Quick fix (rejected): move photos' Dockerfiles to its repository root; it changes the
operator's photo application and leaves the trap for the next module.
Thorough fix (chosen): one context for every image, the module's directory; it never
leaves that directory, so the isolation of ADR 0487 section 2 holds.
Author
Member

Delivery novox/mesh-catalog@dcf32576a880 — merged since 2026-10-26T20:36:12Z

Source — source.main moved to novox/mesh-catalog@eba4bab00a. Whether it reached the machines is mesh-delivery-view's, derived from source.main, the wants and the haves.

Transitions

  • 2026-10-26 20:35 (new) → proposed (announced): novox/mesh-catalog#512's head announced
  • 2026-10-26 20:35 proposed → ready (accepted): a verdict names this commit and the trunk's head as its trunk commit, the gate passed or warned, and the repository's own check did not fail; or the check gates no merge (check-gates-merge false)
  • 2026-10-26 20:36 ready → merged (merged): on the trunk its modules follow: merged there

The commit's note under refs/notes/mesh-plan keeps every transition of this change up to its merge: git log --notes=mesh-plan.

<!-- mesh-delivery:view --> **Delivery** `novox/mesh-catalog@dcf32576a880` — **merged** since 2026-10-26T20:36:12Z **Source** — source.main moved to novox/mesh-catalog@eba4bab00aa7. Whether it reached the machines is `mesh-delivery-view`'s, derived from `source.main`, the wants and the haves. **Transitions** - 2026-10-26 20:35 (new) → proposed (announced): novox/mesh-catalog#512's head announced - 2026-10-26 20:35 proposed → ready (accepted): a verdict names this commit and the trunk's head as its trunk commit, the gate passed or warned, and the repository's own check did not fail; or the check gates no merge (check-gates-merge false) - 2026-10-26 20:36 ready → merged (merged): on the trunk its modules follow: merged there The commit's note under `refs/notes/mesh-plan` keeps every transition of this change up to its merge: `git log --notes=mesh-plan`.
mesh-tools merged commit eba4bab00a into main 2026-10-26 20:36:09 +00:00
mesh-tools deleted branch fix/1703-image-context 2026-10-26 20:36:10 +00:00
Sign in to join this conversation.
No Reviewers
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: novox/mesh-catalog#512