Context
Follow-up from #564 (which bumps the main Dockerfile to node:24-trixie so uWebSockets.js's prebuilt binaries — which require GLIBC_2.38 — can load).
Dockerfile-gpu has the same latent problem, one release worse:
FROM nvidia/cuda:13.3.0-cudnn-runtime-ubuntu22.04 AS run
Ubuntu 22.04 ships glibc 2.35. uWebSockets.js v20.68.0 (pinned in harper#1096) links its Linux prebuilts against GLIBC_2.38, so any image built from Dockerfile-gpu will throw the same runtime error the main image did before #564:
/lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.38' not found
(required by .../node_modules/uWebSockets.js/uws_linux_x64_137.node)
This is currently latent because HARPER_UWS_UDS is opt-in and not yet exercised, but it will surface the moment the uWS path is enabled on a GPU-image deployment.
Fix
Bump the CUDA runtime base to an Ubuntu release providing glibc ≥ 2.38, subject to what NVIDIA publishes for CUDA 13.3:
nvidia/cuda:13.3.0-cudnn-runtime-ubuntu24.04 (glibc 2.39) — likely available, minimal jump; or
...-ubuntu26.04 (glibc 2.41) if NVIDIA ships it for CUDA 13.3, to match the GPU hosts which already run Ubuntu 26.04 LTS.
Verify the chosen nvidia/cuda:13.3.0-cudnn-runtime-ubuntuXX.04 tag exists before committing.
Verification
Build the GPU image and confirm inside it:
node -e 'require("uWebSockets.js"); console.log("uWS loads OK")'
References
Context
Follow-up from #564 (which bumps the main
Dockerfiletonode:24-trixieso uWebSockets.js's prebuilt binaries — which requireGLIBC_2.38— can load).Dockerfile-gpuhas the same latent problem, one release worse:FROM nvidia/cuda:13.3.0-cudnn-runtime-ubuntu22.04 AS runUbuntu 22.04 ships glibc 2.35. uWebSockets.js v20.68.0 (pinned in harper#1096) links its Linux prebuilts against GLIBC_2.38, so any image built from
Dockerfile-gpuwill throw the same runtime error the main image did before #564:This is currently latent because
HARPER_UWS_UDSis opt-in and not yet exercised, but it will surface the moment the uWS path is enabled on a GPU-image deployment.Fix
Bump the CUDA runtime base to an Ubuntu release providing glibc ≥ 2.38, subject to what NVIDIA publishes for CUDA 13.3:
nvidia/cuda:13.3.0-cudnn-runtime-ubuntu24.04(glibc 2.39) — likely available, minimal jump; or...-ubuntu26.04(glibc 2.41) if NVIDIA ships it for CUDA 13.3, to match the GPU hosts which already run Ubuntu 26.04 LTS.Verify the chosen
nvidia/cuda:13.3.0-cudnn-runtime-ubuntuXX.04tag exists before committing.Verification
Build the GPU image and confirm inside it:
References
Dockerfile(bookworm → trixie)HARPER_UWS_UDS/ H3 work