You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Document and implement strategy when musl releases (for Alpine) are missing #2363
Missing / delayed musl builds from https://unofficial-builds.nodejs.org/download/release/, required to build Node.js Docker images for Alpine Linux releases, are causing delays in the release of Debian-based Node.js Docker images.
Tier 1: These platforms represent the majority of Node.js users. The
Node.js Build Working Group maintains infrastructure for full test coverage.
Test failures on tier 1 platforms will block releases.
Tier 2: These platforms represent smaller segments of the Node.js user
base. The Node.js Build Working Group maintains infrastructure for full test
coverage. Test failures on tier 2 platforms will block releases.
Infrastructure issues may delay the release of binaries for these platforms.
Experimental: May not compile or test suite may not pass. The core team
does not create releases for these platforms. Test failures on experimental
platforms do not block releases. Contributions to improve support for these
platforms are welcome.
Since musl builds belong to the Experimental category, the statement "Test failures on experimental platforms do not block releases." applies to the corresponding upstream Node.js release.
This project is experimental: its output is not guaranteed to remain consistent and its existence is not guaranteed into the future.
Suggestion
Based on the above, the release of Tier 1 Node.js Debian-based Docker images should not depend on the availability of Experimental Node.js musl releases.
Document the strategy for handling delayed upstream Node.js releases that are missing platforms in the Experimental category:
For instance, add one of the following statement to the README:
Non-availability of Experimental Node.js musl releases does not block the release of Debian-based Node.js Docker images
or generically:
Non-availability of Node.js releases for Experimental platforms defined in the Node.js platform list does not block the release of Docker images based on Tier 1 or 2 Node.js Docker platforms.
This would apply to both security and non-security releases.
Implement the strategy
The following are PR proposals for handling security releases only:
We have recently had the situation where other builders of Debian Docker images based on Node.js published a day earlier compared to the main images from this repo.
Image
Published
node:24.13.0-trixie
Jan 14, 2026 11:43 pm
cimg/node:24.13.0
Jan 13, 2026 8:29 pm
cypress/base:24.13.0
Jan 13, 2026 5:10 pm
It would be good for this situation to be avoided in the future, by decoupling Debian releases from Alpine releases.
I'm going to copy some of my thoughts from the associated PR into here:
We should understand the history behind the decision to publish our experimental/unofficial Alpine builds up as "official images" on dockerhub and determine if that is a policy we wish to continue. I see three options (although I also accept that there may be people depending on these images in the current location who would be impacted by such as change):
Stop publishing container images for non-mainstream (i.e. release blocking) platforms
Separate experimental platforms such as Alpine into a separate official images repository such as "node-experimental" so they are fully decoupled.
Build the images ourselves and push them up to dockerhub in a separate non-official repository on dockerhub (and/or elsewhere if desired!)
Should we have an option in the node build to allow a build-time message that can be included in the repl startup message so we can make it more visible that these are "unofficial" (from a node perspective) or "experimental" builds?
I don't know if it's a concern but since we also have other Alpine builds which are not even experimental should be really be publishing them at all? I believe Alpine/x64 is the only experimental platform that we have PR testing for so we have a reasonable confidence that it should work, but that is not the case for any of the others, so at the moment we could presumably publish something that crashes on startup.
As mentioned in by Mike in this comment the Alpine size is smaller but is it significant enough that people would choose to use it over Alpine? Do we have usage/download stats from dockerhub available?
As I'm not currently a collaborator (If someone wishes to add me, please do) I do not have permission to add the label to make this as a WG agenda item (See also the issue on when such things are discussed). Also just to add in another related link it looks like there are other concerns that have been raised on the vibrance of this WG to the TSC recently. I also note that I don't think any of the WG members have so far contributed to #2355 which has been open for over two weeks.
@PeterDaveHello@SimenB As the currently active collaborators in the project do you have any thoughts on any of the above discussion? I personally would not be averse to stopping the publication of Alpine official images unless someone steps up to make it an official platform in the Node.js project (Noting that this echoes one of the comments made by the upstream dockerhub staff)
While there is no official data, there is a non-negligible amount of Alpine users based on my first-hand observation. I think removing Alpine entirely will surely cause upset, and should be communicated beforehand (preferably with a notice period).
Even if the Alpine musl binary is experimental, musl builds are generally pretty good and rarely have issues. Just the depressingly slow build speed.
My recommendation is to adjust Alpine behavior to non-blocking over time. This aligns pretty well with the experimental status while providing options for Alpine userbase. We can adjust the behavior in multiple phases. e.g.,:
phase 1: non-blocking behavior for security releases
phase 2: non-blocking behavior for deprecations/new base release
phase 3: non-blocking for all variants
Lastly, no matter what the final decision is, a communication/announcement via official channels is mandatory.
Regular WG meetings are sorely missed in cases like this. I can only hope that there won't be another security release until this matter is resolved properly
Noting that in terms of security release delays since I would expect that security releases would normally be quite small and targetted it's likely that the ccache fix will mean that it doesn't take quite so long to rebuild. For example the latest 25 release built all unofficial builds in about an hour once it kicked off: https://unofficial-builds.nodejs.org/logs/202603031604-v25.8.0/)
It's good that fixes have speeded up builds. Hopefully this will mean that the situation of missing builds doesn't happen so often. The basic issue though still remains, due to Node.js' release policy:
Test failures on experimental platforms do not block releases.
Test failures on experimental platforms do not block releases.
That's true for the main releases from the project but does not necessarily cascade through to other areas like docker-node. We should probably adopt that formally in here too though.
That's true for the main releases from the project but does not necessarily cascade through to other areas like docker-node. We should probably adopt that formally in here too though.
I think that is the point of this issue, to determine and document how to react when the musl builds are missing. Wait for everything, or proceed with what's available.
I have now submitted #2441 to document some of the things that were missing in the README:
describes how image tags can first appear without the related OS/ARCH images
explains why Alpine images may not initially be available for security releases
Several bugs in the update.sh script have been fixed, and it looks like it should now handle security releases correctly, although this will need to be checked at the next security release. The open PRs to fix this issue should be reviewed - they may not be necessary, or they may actually include additional useful enhancements.
Strategy discussions about whether Alpine should be included or not should be separated out of this issue, which was really more intended to clarify how things are currently handled.
Activity
MikeMcC399 commentedon Jan 27, 2026
We have recently had the situation where other builders of Debian Docker images based on Node.js published a day earlier compared to the main images from this repo.
node:24.13.0-trixiecimg/node:24.13.0cypress/base:24.13.0It would be good for this situation to be avoided in the future, by decoupling Debian releases from Alpine releases.
MikeMcC399 commentedon Jan 28, 2026
See also #2011 concerning adding a note about the experimental basis for Alpine releases, which has been out there since 2023 and is still open.
sxa commentedon Feb 3, 2026
I'm going to copy some of my thoughts from the associated PR into here:
As I'm not currently a collaborator (If someone wishes to add me, please do) I do not have permission to add the label to make this as a WG agenda item (See also the issue on when such things are discussed). Also just to add in another related link it looks like there are other concerns that have been raised on the vibrance of this WG to the TSC recently. I also note that I don't think any of the WG members have so far contributed to #2355 which has been open for over two weeks.
sxa commentedon Feb 3, 2026
Noting that the initial Alpine support was added under #156
MikeMcC399 commentedon Feb 3, 2026
sxa commentedon Feb 4, 2026
@PeterDaveHello @SimenB As the currently active collaborators in the project do you have any thoughts on any of the above discussion? I personally would not be averse to stopping the publication of Alpine official images unless someone steps up to make it an official platform in the Node.js project (Noting that this echoes one of the comments made by the upstream dockerhub staff)
ItsHarta commentedon Feb 4, 2026
Just giving my thoughts
Lastly, no matter what the final decision is, a communication/announcement via official channels is mandatory.
Regular WG meetings are sorely missed in cases like this. I can only hope that there won't be another security release until this matter is resolved properly
MikeMcC399 commentedon Feb 4, 2026
Note also that the Docker Getting Started workshop https://docs.docker.com/get-started/workshop/02_our_app/ is currently based on using the
node:24-alpineimage.ItsHarta commentedon Feb 22, 2026
Any updates on this issue? been hanging for almost a month with no visible progress
MikeMcC399 commentedon Feb 22, 2026
sxa commentedon Mar 5, 2026
Noting that in terms of security release delays since I would expect that security releases would normally be quite small and targetted it's likely that the ccache fix will mean that it doesn't take quite so long to rebuild. For example the latest 25 release built all unofficial builds in about an hour once it kicked off: https://unofficial-builds.nodejs.org/logs/202603031604-v25.8.0/)
MikeMcC399 commentedon Mar 5, 2026
It's good that fixes have speeded up builds. Hopefully this will mean that the situation of missing builds doesn't happen so often. The basic issue though still remains, due to Node.js' release policy:
sxa commentedon Mar 5, 2026
That's true for the main releases from the project but does not necessarily cascade through to other areas like docker-node. We should probably adopt that formally in here too though.
MikeMcC399 commentedon Mar 5, 2026
I think that is the point of this issue, to determine and document how to react when the musl builds are missing. Wait for everything, or proceed with what's available.
MikeMcC399 commentedon Mar 6, 2026
Also possibly related to docs issue #2405 concerning manual instructions for updating Node.js version.
MikeMcC399 commentedon Apr 2, 2026
I have now submitted #2441 to document some of the things that were missing in the README:
Several bugs in the update.sh script have been fixed, and it looks like it should now handle security releases correctly, although this will need to be checked at the next security release. The open PRs to fix this issue should be reviewed - they may not be necessary, or they may actually include additional useful enhancements.
Strategy discussions about whether Alpine should be included or not should be separated out of this issue, which was really more intended to clarify how things are currently handled.
BTW: https://nodejs.org/en/download now recommends downloading
node:*-slimrather thannode:*-alpine, which was an initiative started by @mcollinaMikeMcC399 commentedon May 18, 2026
The README now clarifies the topic "Document and implement strategy when musl releases (for Alpine) are missing", through the sections:
This issue is therefore resolved.
Parallel to the documentation changes, there were also some fixes applied to automation scripts.