Skip to content

v0.44.1 — CI hotfix: install pnpm directly (Node 26 ships no Corepack)

Hotfix for the 0.44.0 Node 26 bump.

The break

0.44.0 moved the base images to node:26-alpine but left the corepack enable && corepack prepare pnpm@latest --activate line in place, so the docker build died at /bin/sh: corepack: not found (exit 127). Corepack was unbundled in Node 25 — it is "distributed with Node.js from version 14.19.0 up to (but not including) 25.0.0" — and node:26-alpine confirms it: npm 11.17.0 present, corepack absent.

The fix

  • [x] Install pnpm with npm instead, pinned via a global ARG to the version in package.json's packageManager field.

That also closes a latent reproducibility hole the old line carried: corepack prepare pnpm@latest resolved to whatever pnpm was newest when the image happened to be built, which could drift from the version that generated pnpm-lock.yaml. The images now report pnpm 10.23.0 rather than a moving target.

Verified against a real daemon, not just by reading: the root Dockerfile's builder stage builds clean end to end, module-builder now reaches its final step (failing only on the expected empty-token 401), and a faithful replica of the production stage installs --prod and compiles better-sqlite3 13. CI builds only the root Dockerfile.

Known-broken, pre-existing

packages/server-core/Dockerfile gets the same fix but remains broken for an unrelated reason: neither of its stages installs python3/make/g++, so better-sqlite3 cannot compile when no prebuild matches. Nothing references that file — it is dead config, and should probably be deleted rather than repaired.