Repository navigation
Related tasks for Alpine (musl) x64 promotion to Tier 2 #2550
Description
Activity
Without making the transition of Alpine x64 to Tier 2 overly complicated here, it would need each of the supported Node.js release lines 22, 24 & 26 to have released with an x64 musl build on https://nodejs.org/dist/ before the Dockerfiles and associated build scripts can be cleanly transitioned. This is related to nodejs/build#4423.
That will probably take us at least into September 2026, possibly even October 2026. Preparations for Node.js 27 Alpha may therefore also overlap.
Availability of
https://nodejs.org/dist/<vx.y.z>/node-<vx.y.z>-linux-x64-musl.tar.xzNode.js since status nightly 20260821 Experimental 26.x 26.8.0 Experimental 24.x 24.20.0 Experimental 22.x 22.23.3 Experimental Looks like https://nodejs.org/dist/latest-v22.x/ now also includes the
muslbinaries, so we can look at removing the Unofficial workaroundsReacted by Mike McCreadyhttps://github.com/nodejs/node/blob/main/BUILDING.md#platform-list now includes the Tier 2 upgrade for
x64-musl:Operating System Architectures Versions Support Type Notes GNU/Linux x64 kernel >= 6.12, musl >= 1.2.5 Tier 2 e.g. Alpine 3.22 This documentation change has not yet been backported to any of the supported release lines Node.js 22, 24 & 26, however I would expect this to be a formality only, as the intention was clear that all of them are covered.
Node.js official builds starting with Node.js 25.0.0 are built with
gcc-toolset-14-libatomic-devel. See https://github.com/nodejs/node/blob/v26.x/BUILDING.md#official-binary-platforms-and-toolchainsStarting with Node.js 25, official Linux binaries are linked with libatomic and these systems must have the libatomic runtime installed and available at execution time to run the binaries. The package name for the libatomic runtime is typically libatomic or libatomic1 depending on your Linux distribution.
This is a change from the unofficial musl builds. There is an additional prerequisite
libatomicnecessary when migrating to use Node.js 26 official musl builds.The change impacts Dockerfile-alpine.template and Alpine examples in docs/BestPractices.md.
nodejs/node#66353 is submitted to aid the progress of documentation changes to reclassify musl x64 as Tier 2 across each of the supported release lines.
It will take a while before this is documented in each of the release lines. Node.js 26.x comes first, with a 2-week cadence. Node.js 24.x needs a cooldown period of 2 weeks before backporting, and it has a monthly cadence. Node.js 22.x is the maintenance LTS version and it has infrequent updates.
Current status
Platform list currently contains the following entry:
Other architectures are unlisted, and have no designated support type.
Official binary platforms and toolchains does not list any Alpine / musl build.
nodeDocker images for Alpine are built fromhttps://unofficial-builds.nodejs.org/download/release/v<node-version>/node-v<node-version>-linux-x64-musl.tar.xzx64images are built using thex64-muslbuild directlyarm64,arm32ands390ximages are built from sourceUpdate automation treats security releases differently and proceeds with these releases without waiting for musl build availability.
Proposed Node.js change
PR nodejs/node#63737 proposes the promotion of Alpine/x64 to Tier 2.
This can be expected to add Alpine/x64 to the Platform list and to Official binary platforms and toolchains.
An
x64-muslbuild can be expected to be available through the regular https://nodejs.org/download/release/ website.Impact
Expected update tasks and impact will include:
-s(security) option does not exclude Alpine builds, or for more simplification, remove the-soption entirely, since it becomes a no-opReview other Alpine-related issues and PR for relevance and applicability.