chore(release): cherry-pick #28519 (non_root npm fix) into patch/1.86.0#28744
Conversation
The non_root builder stage installs `nodejs` but not `npm`. Without `npm` on PATH, prisma-python falls back to downloading a Node runtime via nodeenv from nodejs.org, and that downloaded binary fails to load `libatomic.so.1` — breaking `prisma generate` and the image build. `npm` was dropped from this apk list in ca52e34. Restoring it lets prisma-python use the system Node + npm, matching docker/Dockerfile which already installs `npm` for the same reason.
Greptile SummaryCherry-picks the one-line
Confidence Score: 4/5The builder-stage fix is correct and minimal. The only open question is whether the runtime-stage The change is a targeted one-liner cherry-pick that directly addresses a documented build failure. The runtime stage's The runtime-stage
|
| Filename | Overview |
|---|---|
| docker/Dockerfile.non_root | Adds npm to the builder stage's apk add list so prisma generate (line 93) finds npm on PATH and avoids the nodeenv fallback that fails to load libatomic.so.1 on Wolfi. The runtime stage also runs prisma generate (line 141) but still does not install npm; PRISMA_OFFLINE_MODE=true and pre-copied binaries may cover that case. |
Comments Outside Diff (1)
-
docker/Dockerfile.non_root, line 103-108 (link)Runtime stage
prisma generatealso lacksnpmThe runtime stage runs
prisma generateat line 141 but does not installnpm(line 107 only addsnodejs). If prisma-python applies the same npm-presence check that triggered the nodeenv fallback in the builder stage, the runtime-stage build could fail for the same reason. ThePRISMA_OFFLINE_MODE=trueand pre-copied engine binaries from the builder stage may prevent this in practice, but it is worth confirming that no nodeenv code path is exercised during the runtimeprisma generaterun.
Reviews (1): Last reviewed commit: "fix(docker): restore npm to non_root bui..." | Re-trigger Greptile
Summary
f1abe03ed6) ontopatch/1.86.0to unblock the v1.86.0-stableDockerfile.non_rootbuild.npmonPATH, prisma-python falls back to a nodeenv-bootstrapped node that fails to loadlibatomic.so.1on Wolfi, causingprisma generateto exit 127 (see project-releaser run #26349890283).litellm_internal_staging; v1.86.0-rc.1 was cut before it landed.Test plan
patch/1.86.0and confirmprisma generatesucceeds.