cypress-io / cypress-docker-images

Docker images with Cypress dependencies and browsers
https://on.cypress.io/continuous-integration
MIT License
1.02k stars 380 forks source link

Update internal cypress image to use Debian Bookworm #1223

Open AtofStryker opened 4 days ago

AtofStryker commented 4 days ago

The Cypress app team would like to use Debian bookworm as its default base for internal images over Bullseye. There is currently a hurdle with this as it requires cypress to update playwright-webkit from 1.24.2 to at least 1.47.2.

MikeMcC399 commented 4 days ago

@AtofStryker

The Cypress app team would like to use Debian bookworm as its default base for internal images over Bullseye.

Does that require a change in this repo? I don't see bullseye being used here anymore, but maybe I have overlooked something?

There is currently a hurdle with this as it requires cypress to update playwright-webkit from 1.24.2 to at least 1.47.2.

jennifer-shehane commented 3 days ago

@MikeMcC399 Yes, we want to add a base-internal image with bookworm.

MikeMcC399 commented 3 days ago

@jennifer-shehane

Yes, we want to add a base-internal image with bookworm.

That is what I don't understand, because such cypress/base-internal images already exist, although they use an older version of Debian bookworm (12.1) not the latest (12.7).

$ docker run --rm --entrypoint cat cypress/base-internal:18.17.1-bookworm /etc/debian_version
12.1

I don't know where this image came from though, as I can't find it under https://github.com/cypress-io/cypress-docker-images/tree/master/base-internal/releases/node-18, nor in any PR.

Similarly cypress/base-internal:18.17.1-yarn-berry is also based on Debian 12.1 bookworm.

Maybe this is a request for a new cypress/base-internal image with a higher version of Node.js if it is part of the Cypress 14 work?

jennifer-shehane commented 3 days ago

@MikeMcC399 Yah this is part of 14 work. It's intention is to build the binary on a distro that would support glibc 2.28, which is the same glibc version Node.js is using in LTS.

MikeMcC399 commented 3 days ago

@jennifer-shehane

Yah this is part of 14 work. It's intention is to build the binary on a distro that would support glibc 2.28, which is the same glibc version Node.js is using in LTS.

For Cypress 14 it would probably mean producing an image similar to the existing cypress/base-internal:18.17.1-bookworm fitting to whatever Electron version you go with. For example cypress/base-internal:20.17.0-bookworm for Electron v32.1.2.

Each of the following operating system versions meets the requirement of glibc >= 2.28 on Linux systems. It's not constrained to Debian 12 (bookworm), although of course this choice would fit:

OS version GLIBC version
Ubuntu 20.04.6 LTS ldd (Ubuntu GLIBC 2.31-0ubuntu9.16) 2.31
Ubuntu 22.04.5 LTS ldd (Ubuntu GLIBC 2.35-0ubuntu3.8) 2.35
Ubuntu 24.04.1 LTS ldd (Ubuntu GLIBC 2.39-0ubuntu8.3) 2.39
Debian 11.11 ldd (Debian GLIBC 2.31-13+deb11u11) 2.31
Debian 12.7 ldd (Debian GLIBC 2.36-9+deb12u8) 2.36