Fix: pass NEXT_PUBLIC_API_URL at build time for the web image - #7
Open
mpont91 wants to merge 1 commit into
Open
Conversation
Next.js inlines NEXT_PUBLIC_* into the client bundle when it builds, but the production image runs npm run build without it and only receives the value at runtime, where it has no effect. The deployed dashboard therefore falls back to http://localhost:8000 and no browser can reach the API. Local dev hides this because it runs next dev. Adds an ARG so the value can be passed with build args.
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.
Next.js inlines
NEXT_PUBLIC_*into the client bundle when it builds.deploy/Dockerfile.webrunsnpm run buildwithout the variable and only receives it at runtime, where it no longer has any effect:So a deployed dashboard ships with the
http://localhost:8000fallback baked into its JavaScript, and no visitor can reach the API. Local dev hides it becausedocker-compose.local.yamlrunsnext dev, which reads the variable at request time.Adds
ARG NEXT_PUBLIC_API_URLbefore the build so it can be passed as a build arg:Worth noting the value must not include the
/apisuffix — the frontend already prepends it (see #2).