-
Notifications
You must be signed in to change notification settings - Fork 395
New internal dockerfiles for node v22 and chrome 136 #1379
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
cacieprins
commented
Jul 2, 2025
- There are no longer base images for node v22 in buster; buster has been retired as a base image for glibc backwards compatibility.
- Bullseye ships with a new enough GCC, so we no longer have to build a custom GCC
- The earliest glibc version we now support is 2.31
- The glibc-specific image is now named based on the glibc version rather than the list of other versions, as this image is used specifically to build better-sqlite with a specific version of glibc
@@ -0,0 +1,15 @@ | |||
# cypress/base-internal:22.15.1-bullseye-python3.8-gcc-10.5 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
do we want the readme to be based on the gcc based or glibc based? maybe a comment that gcc-10.5
has glibc
2.31
?
# cypress/base-internal:22.15.1-bullseye-python3.8-gcc-10.5 | |
# cypress/base-internal:22.15.1-bullseye-python3.8-glibc-2.31 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm a little confused, because it's bullseye (Debian 11) that determines the version of glibc to be 2.31, not gcc
https://packages.debian.org/search?searchon=sourcenames&keywords=glibc
Also bullseye installs gcc 10.2.1 not 10.5
https://packages.debian.org/search?searchon=sourcenames&keywords=gcc
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This image replaces the 20.15.0-buster-python-gcc-10.5
image in the main Cypress repo's CI workflow. This image is used to build better-sqlite3
with a "least common" glibc version for the operating systems we support. It has the python and gcc version labels because those are additional upgrades needed to get things building properly on buster.
While it's true that this image is identical (except in the python downgrade, which was to preserve python versions between the buster->bullseye upgrade), I think it's important to keep separate, because the label is self-documenting: what we care about with this image is not that it's using python 3.8 and gcc 10.5, it's that this is an image with an easily discoverable glibc version.
It's a subtle change, but important for making the Cypress CI process a little easier to understand.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I was just bit confused why you would want to label it with gcc-10.5 when the gcc version is 10.2.1, but maybe 10.5 is referring to something else?
$ docker run -it --rm --entrypoint bash cypress/base-internal:22.15.1-bullseye
root@bfa185608bea:/# gcc --version
gcc (Debian 10.2.1-6) 10.2.1 20210110
Copyright (C) 2020 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yep, that was a missed update in the readme. It should now be properly labeled as glibc-2.31 everywhere
browsers-internal/releases/node-22/node22.15.1-bullseye-chrome136-ff138-edge/Dockerfile
Outdated
Show resolved
Hide resolved
browsers-internal/releases/node-22/node22.15.1-bullseye-chrome136-ff138-edge/build.sh
Outdated
Show resolved
Hide resolved
...s-internal/releases/node-22/node22.15.1-bullseye-chrome136-ff138-edge/global-profile copy.sh
Outdated
Show resolved
Hide resolved
I'm not sure I understand this, as glibc is always part of any Linux operating system and it is a fixed to be glibc 2.31 for all releases of Debian 11.x (Bullseye), so it seems redundant to add the glibc version to the name of the Debian release, except for documentation purposes.
|
@MikeMcC399 It is for documentation purposes. We have to reremember/lookup glibc/linux logic every few months. |