fix: use full UBI9 nodejs image for frontend build stage#628
Conversation
Next.js 16 Turbopack requires native SWC binaries that depend on glibc. The UBI9 nodejs-20-minimal image only has microdnf and lacks glibc, causing "libc.so: cannot open shared object file" errors on arm64. Switch the builder stage to the full ubi9/nodejs-20 image which includes glibc. The runtime stage remains minimal since it only runs the standalone Node.js output. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
I hit this for the first time today, on my mac. This change seems fine. |
Claude Code ReviewSummaryThis PR fixes ARM64 build failures for the frontend component by switching from the minimal UBI9 Node.js image to the full image for the build stage. The change is surgical, well-justified, and follows the pattern established in PR e3dc83e for state-sync ARM64 compatibility. Verdict: ✅ APPROVE - Ready to merge Issues by Severity🚫 Blocker IssuesNone. 🔴 Critical IssuesNone. 🟡 Major IssuesNone. 🔵 Minor IssuesNone. Positive Highlights
Technical AnalysisRoot CauseNext.js 16 Turbopack uses SWC (Speedy Web Compiler) which includes native Rust binaries that depend on glibc. The Fix ValidationThe fix is correct because:
Security Considerations✅ No security concerns:
Performance ImpactMinor improvement:
RecommendationsPre-Merge ActionsNone required - ready to merge as-is. Future Considerations (Not Blocking)
References
Reviewed by: Claude Sonnet 4.5 (Code Review Agent) 🔍 View AI decision process (logs available for 90 days) 📋 View memory system files loaded (click to expand)What Amber Loaded for Code ReviewAmber automatically loaded these repository standards from the memory system:
Impact: This review used your repository's specific code quality standards, security patterns, and best practices from the memory system (PRs #359, #360) - not just generic code review guidelines. |
|
Minimal=76mb / 211mb uncompressed |
Summary
ubi9/nodejs-20-minimalto the fullubi9/nodejs-20imageProblem
Next.js 16 Turbopack requires native SWC binaries that depend on glibc. The
ubi9/nodejs-20-minimalimage lacks glibc, which causes arm64 build failures when Turbopack attempts to load its native bindings during the build stage.Fix
Use the full
ubi9/nodejs-20image for the frontend build stage, which includes glibc and all required system libraries for SWC/Turbopack native binaries to load correctly on both amd64 and arm64 architectures.