From 5761681e445032e0a2a43cea28b69aef387767e8 Mon Sep 17 00:00:00 2001 From: Bill Glesias Date: Wed, 29 Oct 2025 17:10:15 -0400 Subject: [PATCH 1/2] chore: add trixie internal images --- .../node-22/22.19.0-trixie/Dockerfile | 91 +++++++++++++++++++ .../releases/node-22/22.19.0-trixie/README.md | 14 +++ .../releases/node-22/22.19.0-trixie/build.sh | 9 ++ .../node-22/22.19.0-yarn-berry/Dockerfile | 11 +-- .../node-22/22.19.0-yarn-berry/README.md | 4 +- .../node-22/22.19.0-yarn-berry/build.sh | 2 +- 6 files changed, 121 insertions(+), 10 deletions(-) create mode 100644 base-internal/releases/node-22/22.19.0-trixie/Dockerfile create mode 100644 base-internal/releases/node-22/22.19.0-trixie/README.md create mode 100755 base-internal/releases/node-22/22.19.0-trixie/build.sh diff --git a/base-internal/releases/node-22/22.19.0-trixie/Dockerfile b/base-internal/releases/node-22/22.19.0-trixie/Dockerfile new file mode 100644 index 0000000000..fef61e8913 --- /dev/null +++ b/base-internal/releases/node-22/22.19.0-trixie/Dockerfile @@ -0,0 +1,91 @@ +# build it with command +# docker build -t cypress/base-internal:22.19.0-trixie --platform linux/amd64 . +# +FROM node:22.19.0-trixie-slim + +RUN apt-get update && \ + apt-get install --no-install-recommends -y \ + libgtk-3-0t64 \ + libnotify-dev \ + libgbm-dev \ + libnss3 \ + libxss1 \ + libasound2t64 \ + libxtst6 \ + procps \ + xauth \ + xvfb \ + build-essential \ + # install text editors + vim-tiny \ + nano \ + # install emoji font + fonts-noto-color-emoji \ + # install Chinese fonts + # this list was copied from https://github.com/jim3ma/docker-leanote + fonts-arphic-bkai00mp \ + fonts-arphic-bsmi00lp \ + fonts-arphic-gbsn00lp \ + fonts-arphic-gkai00mp \ + fonts-arphic-ukai \ + fonts-arphic-uming \ + ttf-wqy-zenhei \ + xfonts-wqy \ + # clean up + && rm -rf /var/lib/apt/lists/* \ + && apt-get clean + +USER root + +RUN node --version + + +# Install dependencies +RUN apt-get update && \ + apt-get install -y \ + fonts-liberation \ + git \ + libcurl4 \ + libcurl3-gnutls \ + libvulkan1 \ + xdg-utils \ + wget \ + # needed for circle orb browsers to install firefox + gpg \ + # needed for circle orb browsers to install chromedriver + jq \ + curl \ + # chrome dependencies + libu2f-udev \ + # firefox dependencies + bzip2 \ + # add codecs needed for video playback in firefox + # https://github.com/cypress-io/cypress-docker-images/issues/150 + mplayer \ + \ + # clean up + && rm -rf /var/lib/apt/lists/* \ + && apt-get clean + +# install libappindicator3-1 - not included with Debian 11 +RUN wget --no-verbose /usr/src/libappindicator3-1_0.4.92-7_amd64.deb "http://ftp.us.debian.org/debian/pool/main/liba/libappindicator/libappindicator3-1_0.4.92-7_amd64.deb" && \ + dpkg -i /usr/src/libappindicator3-1_0.4.92-7_amd64.deb ; \ + apt-get install -f -y && \ + rm -f /usr/src/libappindicator3-1_0.4.92-7_amd64.deb + +# a few environment variables to make NPM installs easier +# good colors for most applications +ENV TERM=xterm +# avoid million NPM install messages +ENV npm_config_loglevel=warn + +RUN npm --version \ + && npm install -g yarn@latest --force \ + && yarn --version \ + && node -p process.versions \ + && node -p 'module.paths' \ + && echo " node version: $(node -v) \n" \ + "npm version: $(npm -v) \n" \ + "yarn version: $(yarn -v) \n" \ + "debian version: $(cat /etc/debian_version) \n" \ + "user: $(whoami) \n" diff --git a/base-internal/releases/node-22/22.19.0-trixie/README.md b/base-internal/releases/node-22/22.19.0-trixie/README.md new file mode 100644 index 0000000000..5123796352 --- /dev/null +++ b/base-internal/releases/node-22/22.19.0-trixie/README.md @@ -0,0 +1,14 @@ +# cypress/base-internal:22.19.0-trixie + +A Docker image with all dependencies pre-installed based on Debian Trixie. + +NOTE: This image is intended for internal use with https://github.com/cypress-io/cypress. It contains a few differences from the factory, such as: + +#### Dependency Additions + +- xauth (to run xvfb inside system-tests) +- build-essential to install `make` and other linux build packages + +#### Env variables + +- Does not contain the `CACHE_FOLDER` and `FACTORY_DEFAULT_NODE_VERSION` env variables to keep unit tests non environment specific diff --git a/base-internal/releases/node-22/22.19.0-trixie/build.sh b/base-internal/releases/node-22/22.19.0-trixie/build.sh new file mode 100755 index 0000000000..c67f483cd7 --- /dev/null +++ b/base-internal/releases/node-22/22.19.0-trixie/build.sh @@ -0,0 +1,9 @@ +#!/bin/bash + +set -e+x + +# build image with Cypress dependencies +LOCAL_NAME=cypress/base-internal:22.19.0-trixie + +echo "Building $LOCAL_NAME" +docker build -t $LOCAL_NAME . --platform linux/amd64 diff --git a/base-internal/releases/node-22/22.19.0-yarn-berry/Dockerfile b/base-internal/releases/node-22/22.19.0-yarn-berry/Dockerfile index b87e160c70..78b8d38f91 100644 --- a/base-internal/releases/node-22/22.19.0-yarn-berry/Dockerfile +++ b/base-internal/releases/node-22/22.19.0-yarn-berry/Dockerfile @@ -1,18 +1,16 @@ # build it with command -# docker build -t cypress/base-internal:22.19.0-yarn-berry --platform linux/amd64 . +# docker build -t cypress/base-internal:22.19.0-yarn-berry-trixie --platform linux/amd64 . # -FROM node:22.19.0-bookworm-slim +FROM node:22.19.0-trixie-slim RUN apt-get update && \ apt-get install --no-install-recommends -y \ - libgtk2.0-0 \ - libgtk-3-0 \ + libgtk-3-0t64 \ libnotify-dev \ - libgconf-2-4 \ libgbm-dev \ libnss3 \ libxss1 \ - libasound2 \ + libasound2t64 \ libxtst6 \ procps \ xauth \ @@ -35,7 +33,6 @@ RUN apt-get update && \ fonts-arphic-ukai \ fonts-arphic-uming \ ttf-wqy-zenhei \ - ttf-wqy-microhei \ xfonts-wqy \ # clean up && rm -rf /var/lib/apt/lists/* \ diff --git a/base-internal/releases/node-22/22.19.0-yarn-berry/README.md b/base-internal/releases/node-22/22.19.0-yarn-berry/README.md index 9dd9607c40..aa7bb217c3 100644 --- a/base-internal/releases/node-22/22.19.0-yarn-berry/README.md +++ b/base-internal/releases/node-22/22.19.0-yarn-berry/README.md @@ -1,6 +1,6 @@ -# cypress/base-internal:22.19.0-yarn-berry +# cypress/base-internal:22.19.0-yarn-berry-trixie -A Docker image with all dependencies pre-installed based on Debian Bookworm with Yarn Berry (v4.3.1). +A Docker image with all dependencies pre-installed based on Debian Trixie with Yarn Berry (v4.3.1). NOTE: This image is intended for internal use with https://github.com/cypress-io/cypress. It contains a few differences from the factory, such as: diff --git a/base-internal/releases/node-22/22.19.0-yarn-berry/build.sh b/base-internal/releases/node-22/22.19.0-yarn-berry/build.sh index 60b9a14442..321b7f7528 100755 --- a/base-internal/releases/node-22/22.19.0-yarn-berry/build.sh +++ b/base-internal/releases/node-22/22.19.0-yarn-berry/build.sh @@ -3,7 +3,7 @@ set -e+x # build image with Cypress dependencies -LOCAL_NAME=cypress/base-internal:22.19.0-yarn-berry +LOCAL_NAME=cypress/base-internal:22.19.0-yarn-berry-trixie echo "Building $LOCAL_NAME" docker build -t $LOCAL_NAME . --platform linux/amd64 From 2a1ca1ee483842d3fa6eca686be56ed896225506 Mon Sep 17 00:00:00 2001 From: Bill Glesias Date: Thu, 30 Oct 2025 17:06:29 -0400 Subject: [PATCH 2/2] remove trixie prefix and update docs --- base-internal/releases/node-22/22.19.0-trixie/Dockerfile | 2 +- base-internal/releases/node-22/22.19.0-yarn-berry/Dockerfile | 2 +- base-internal/releases/node-22/22.19.0-yarn-berry/README.md | 2 +- base-internal/releases/node-22/22.19.0-yarn-berry/build.sh | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/base-internal/releases/node-22/22.19.0-trixie/Dockerfile b/base-internal/releases/node-22/22.19.0-trixie/Dockerfile index fef61e8913..046dc5f4b9 100644 --- a/base-internal/releases/node-22/22.19.0-trixie/Dockerfile +++ b/base-internal/releases/node-22/22.19.0-trixie/Dockerfile @@ -67,7 +67,7 @@ RUN apt-get update && \ && rm -rf /var/lib/apt/lists/* \ && apt-get clean -# install libappindicator3-1 - not included with Debian 11 +# install libappindicator3-1 - not included with Debian 13 RUN wget --no-verbose /usr/src/libappindicator3-1_0.4.92-7_amd64.deb "http://ftp.us.debian.org/debian/pool/main/liba/libappindicator/libappindicator3-1_0.4.92-7_amd64.deb" && \ dpkg -i /usr/src/libappindicator3-1_0.4.92-7_amd64.deb ; \ apt-get install -f -y && \ diff --git a/base-internal/releases/node-22/22.19.0-yarn-berry/Dockerfile b/base-internal/releases/node-22/22.19.0-yarn-berry/Dockerfile index 78b8d38f91..9208f364fd 100644 --- a/base-internal/releases/node-22/22.19.0-yarn-berry/Dockerfile +++ b/base-internal/releases/node-22/22.19.0-yarn-berry/Dockerfile @@ -1,5 +1,5 @@ # build it with command -# docker build -t cypress/base-internal:22.19.0-yarn-berry-trixie --platform linux/amd64 . +# docker build -t cypress/base-internal:22.19.0-yarn-berry --platform linux/amd64 . # FROM node:22.19.0-trixie-slim diff --git a/base-internal/releases/node-22/22.19.0-yarn-berry/README.md b/base-internal/releases/node-22/22.19.0-yarn-berry/README.md index aa7bb217c3..af448b298e 100644 --- a/base-internal/releases/node-22/22.19.0-yarn-berry/README.md +++ b/base-internal/releases/node-22/22.19.0-yarn-berry/README.md @@ -1,4 +1,4 @@ -# cypress/base-internal:22.19.0-yarn-berry-trixie +# cypress/base-internal:22.19.0-yarn-berry A Docker image with all dependencies pre-installed based on Debian Trixie with Yarn Berry (v4.3.1). diff --git a/base-internal/releases/node-22/22.19.0-yarn-berry/build.sh b/base-internal/releases/node-22/22.19.0-yarn-berry/build.sh index 321b7f7528..60b9a14442 100755 --- a/base-internal/releases/node-22/22.19.0-yarn-berry/build.sh +++ b/base-internal/releases/node-22/22.19.0-yarn-berry/build.sh @@ -3,7 +3,7 @@ set -e+x # build image with Cypress dependencies -LOCAL_NAME=cypress/base-internal:22.19.0-yarn-berry-trixie +LOCAL_NAME=cypress/base-internal:22.19.0-yarn-berry echo "Building $LOCAL_NAME" docker build -t $LOCAL_NAME . --platform linux/amd64