Skip to content

Conversation

cacieprins
Copy link
Contributor

  • 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

@cacieprins cacieprins self-assigned this Jul 2, 2025
@AtofStryker AtofStryker self-requested a review July 2, 2025 18:46
@@ -0,0 +1,15 @@
# cypress/base-internal:22.15.1-bullseye-python3.8-gcc-10.5
Copy link
Contributor

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?

Suggested change
# cypress/base-internal:22.15.1-bullseye-python3.8-gcc-10.5
# cypress/base-internal:22.15.1-bullseye-python3.8-glibc-2.31

Copy link
Collaborator

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

Copy link
Contributor Author

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.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@cacieprins

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.

Copy link
Contributor Author

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

@MikeMcC399
Copy link
Collaborator

@cacieprins

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

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.

Code Name OS version Docker GLIBC version EOL
Bullseye Debian 11.11 debian:11 ldd (Debian GLIBC 2.31-13+deb11u13) 2.31 Aug 31. 2026

@AtofStryker AtofStryker self-requested a review July 3, 2025 14:48
@jennifer-shehane
Copy link
Member

@MikeMcC399 It is for documentation purposes. We have to reremember/lookup glibc/linux logic every few months.

@cacieprins cacieprins merged commit 001c617 into master Jul 7, 2025
49 checks passed
@cacieprins cacieprins deleted the internal-node-22-chrome-136 branch July 7, 2025 14:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants