Page MenuHomePhabricator

Provide nodejs22 base images for production
Closed, ResolvedPublic

Description

Previously: T362681: Provide nodejs20 base images for production

Per upstream's release chart, NodeJS 20 is now in maintenance mode; NodeJS 22 is LTS until October.

Would it be possible to provide a nodejs22 production base image?

Event Timeline

Any updates on this? Node 20 is no longer LTS.

Tagging @MoritzMuehlenhoff as he's listed as maintainer for the nodejs20 image, and this requires adding the third party nodejs22 packages.

It'd be great if we could do Node 24 at the same time.

I'm probably listed there because I have been handling various security update updates of that image, but I'm hardly the maintainer for these images. This should rather be driven by some Product team which actually uses nodejs-based services (and SRE can handles merges, updates etc).

I'm probably listed there because I have been handling various security update updates of that image, but I'm hardly the maintainer for these images. This should rather be driven by some Product team which actually uses nodejs-based services (and SRE can handles merges, updates etc).

I'd be happy to take this on. However, given that we have local apt builds for the packages, is it possible for any non-SRE to do this work?

@Jdforrester-WMF @KartikMistry we usually try to use the nodejs version shipped with a certain Debian version, for example node 20 is shipped with Bookworm (that is the base image for the nodejs20 one). As far as I can see Trixie ships with node20 as well, so importing new versions would require to package/import from elsewhere node22 or node24 (and npm), something that we'd rather not do because of the added complexity. As far as I can see node 20 is marked in maintenance mode (critical security bugs and features only) until April 2026, so it should be good for our use cases unless something like LTS is needed. Is there a specific use case to jump to node 22/24 that could warrant importing/building custom nodejs packages?

Change #1182835 had a related patch set uploaded (by Muehlenhoff; author: Muehlenhoff):

[operations/puppet@production] Add repository sync definition for node 22

https://gerrit.wikimedia.org/r/1182835

For the node images we also use the vendor debs, I made a patch at https://gerrit.wikimedia.org/r/c/operations/puppet/+/1182835I'd be happy to take this on.

However, given that we have local apt builds for the packages, is it possible for any non-SRE to do this work?

@Jdforrester-WMF With the update definition above it's mostly a matter of re-importing current binaries after Node security releases. I can take care of this, I'm keeping an eye on these anyway, the issue is rather this needs some involvement by someone who actually uses these images, so that we notice errors etc.

Change #1182837 had a related patch set uploaded (by Jforrester; author: Jforrester):

[operations/docker-images/production-images@master] Provide Node 22 image, using thirdparty/node22

https://gerrit.wikimedia.org/r/1182837

Change #1182835 merged by Muehlenhoff:

[operations/puppet@production] Add repository sync definition for node 22

https://gerrit.wikimedia.org/r/1182835

@Jdforrester-WMF: I've imported the new nodejs deb to the thirdparty/node22 and updated r1182837 to reflect the new apt source base base image. Could you also quickly doublecheck, then'd go ahead and merge and we'll have the new image available on Monday after the weekly rebuild happening Monday night.

@Jdforrester-WMF: I've imported the new nodejs deb to the thirdparty/node22 and updated r1182837 to reflect the new apt source base base image. Could you also quickly doublecheck, then'd go ahead and merge and we'll have the new image available on Monday after the weekly rebuild happening Monday night.

Yup, all good; it needed a minor tweak but now builds successfully.

Change #1182837 merged by Muehlenhoff:

[operations/docker-images/production-images@master] Provide Node 22 image, using thirdparty/node22, based on Trixie

https://gerrit.wikimedia.org/r/1182837

@Jdforrester-WMF: I've imported the new nodejs deb to the thirdparty/node22 and updated r1182837 to reflect the new apt source base base image. Could you also quickly doublecheck, then'd go ahead and merge and we'll have the new image available on Monday after the weekly rebuild happening Monday night.

Yup, all good; it needed a minor tweak but now builds successfully.

Excellent, merged.

Change #1194968 had a related patch set uploaded (by Jgiannelos; author: Jgiannelos):

[mediawiki/services/wikifeeds@master] Bump base image to node 22

https://gerrit.wikimedia.org/r/1194968

Change #1194966 had a related patch set uploaded (by Jgiannelos; author: Jgiannelos):

[mediawiki/services/mobileapps@master] Bump base image to node 22

https://gerrit.wikimedia.org/r/1194966

Change #1194965 had a related patch set uploaded (by Jgiannelos; author: Jgiannelos):

[mediawiki/services/chromium-render@master] Bump base image to node 22

https://gerrit.wikimedia.org/r/1194965