v2.12.2 β fix: WaxFlow could not be built from a fresh clone - #53
Merged
Conversation
sync-web/public/ was never committed, but sync-web/Dockerfile COPYs it out of the
builder stage, so a clean checkout failed with:
failed to compute cache key: failed to calculate checksum of ref ... /app/public
Nobody could build WaxFlow from a fresh clone. It only worked for people whose
working copy already had the directory, which is why it went unnoticed β CI built
from a clean checkout for the first time in 2.12.0 and the web image failed while
api and worker succeeded. Verified by cloning the repo fresh: no sync-web/public.
Tracks public/.gitkeep and adds `RUN mkdir -p /app/public` so the COPY cannot
fail even when the directory is missing from the build context.
Also documents why the web image is portable despite taking NEXT_PUBLIC_API_URL
as a build arg: the frontend calls a relative /api and next.config.js rewrites it
server-side from INTERNAL_API_URL at RUNTIME, so nothing user-specific is baked
in. That is what lets one published image serve every install.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01HmUiLHPmKoz215WAWV5eHe
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The bug
sync-web/public/was never committed, butsync-web/Dockerfilecopies it out of the builder stage:COPY --from=builder /app/public ./publicA clean checkout therefore fails with:
Nobody could build WaxFlow from a fresh clone. Every new user following the README quick start (
docker compose up -d --build) would have hit this.It went unnoticed because it only affects clean checkouts β anyone whose working copy already had the directory built fine. CI built from a clean checkout for the first time in 2.12.0, and the web image failed while api and worker succeeded, which is what surfaced it.
Verified directly:
The fix
sync-web/public/.gitkeepso the directory always exists.RUN mkdir -p /app/publicin the builder stage, so the COPY cannot fail even if the directory is missing from the build context.Also documented
NEXT_PUBLIC_API_URLis a build arg, which normally means a per-install image. It doesn't here: the frontend calls a relative/api, andnext.config.jsrewrites it server-side fromINTERNAL_API_URLat runtime. Nothing user-specific is baked in β which is what lets one published image serve every install. Added as a comment so the next person doesn't assume otherwise.π€ Generated with Claude Code
https://claude.ai/code/session_01HmUiLHPmKoz215WAWV5eHe