diff --git a/base-internal/releases/node-22/22.19.0-bullseye/Dockerfile b/base-internal/releases/node-22/22.19.0-bullseye/Dockerfile new file mode 100644 index 0000000000..ffe5697c12 --- /dev/null +++ b/base-internal/releases/node-22/22.19.0-bullseye/Dockerfile @@ -0,0 +1,94 @@ +# build it with command +# docker build -t cypress/base-internal:22.19.0-bullseye --platform linux/amd64 . +# +FROM node:22.19.0-bullseye-slim + +RUN apt-get update && \ + apt-get install --no-install-recommends -y \ + libgtk2.0-0 \ + libgtk-3-0 \ + libnotify-dev \ + libgconf-2-4 \ + libgbm-dev \ + libnss3 \ + libxss1 \ + libasound2 \ + 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 \ + ttf-wqy-microhei \ + 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 \ + libcurl3-nss \ + 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-bullseye/README.md b/base-internal/releases/node-22/22.19.0-bullseye/README.md new file mode 100644 index 0000000000..fd88c1dbbd --- /dev/null +++ b/base-internal/releases/node-22/22.19.0-bullseye/README.md @@ -0,0 +1,14 @@ +# cypress/base-internal:22.19.0-bullseye + +A Docker image with all dependencies pre-installed based on Debian Bullseye. + +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-bullseye/build.sh b/base-internal/releases/node-22/22.19.0-bullseye/build.sh new file mode 100755 index 0000000000..fb4ad7bd64 --- /dev/null +++ b/base-internal/releases/node-22/22.19.0-bullseye/build.sh @@ -0,0 +1,9 @@ +#!/bin/bash + +set -e+x + +# build image with Cypress dependencies +LOCAL_NAME=cypress/base-internal:22.19.0-bullseye + +echo "Building $LOCAL_NAME" +docker build -t $LOCAL_NAME . --platform linux/amd64 diff --git a/base-internal/releases/node-22/22.19.0-glibc-2.31/Dockerfile b/base-internal/releases/node-22/22.19.0-glibc-2.31/Dockerfile new file mode 100644 index 0000000000..63c0d446d6 --- /dev/null +++ b/base-internal/releases/node-22/22.19.0-glibc-2.31/Dockerfile @@ -0,0 +1,26 @@ +# build it with command +# docker build -t cypress/base-internal:22.19.0-glibc-2.31 --platform linux/amd64 . +# +FROM cypress/base-internal:22.19.0-bullseye + +RUN apt-get update && \ + apt-get install -y \ + wget \ + xz-utils \ + bzip2 \ + make \ + autoconf \ + gcc-multilib \ + g++-multilib \ + # clean up + && rm -rf /var/lib/apt/lists/* \ + && apt-get clean + + # # Install Python 3.8 + # # Bullseye comes with 3.9, so we need to downgrade +RUN wget https://www.python.org/ftp/python/3.8.0/Python-3.8.0.tgz +RUN tar xvf Python-3.8.0.tgz +RUN cd Python-3.8.0 && ./configure --enable-optimizations --prefix=/usr && make altinstall +RUN rm /usr/bin/python3 && ln -s /usr/bin/python3.8 /usr/bin/python3 + # # Clean up +RUN rm -rf Python-3.8.0 Python-3.8.0.tgz diff --git a/base-internal/releases/node-22/22.19.0-glibc-2.31/README.md b/base-internal/releases/node-22/22.19.0-glibc-2.31/README.md new file mode 100644 index 0000000000..856ecccb81 --- /dev/null +++ b/base-internal/releases/node-22/22.19.0-glibc-2.31/README.md @@ -0,0 +1,15 @@ +# cypress/base-internal:22.19.0-glibc-2.31 + +A Docker image with all dependencies pre-installed based on Debian Bullseye with glibc 2.31 and Python 3.8. + +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 +- Python 3.8 (downgraded from 3.9 for compatibility) + +#### 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-glibc-2.31/build.sh b/base-internal/releases/node-22/22.19.0-glibc-2.31/build.sh new file mode 100755 index 0000000000..e2db2e3434 --- /dev/null +++ b/base-internal/releases/node-22/22.19.0-glibc-2.31/build.sh @@ -0,0 +1,9 @@ +#!/bin/bash + +set -e+x + +# build image with Cypress dependencies +LOCAL_NAME=cypress/base-internal:22.19.0-glibc-2.31 + +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 new file mode 100644 index 0000000000..b87e160c70 --- /dev/null +++ b/base-internal/releases/node-22/22.19.0-yarn-berry/Dockerfile @@ -0,0 +1,68 @@ +# build it with command +# docker build -t cypress/base-internal:22.19.0-yarn-berry --platform linux/amd64 . +# +FROM node:22.19.0-bookworm-slim + +RUN apt-get update && \ + apt-get install --no-install-recommends -y \ + libgtk2.0-0 \ + libgtk-3-0 \ + libnotify-dev \ + libgconf-2-4 \ + libgbm-dev \ + libnss3 \ + libxss1 \ + libasound2 \ + libxtst6 \ + procps \ + xauth \ + xvfb \ + build-essential \ + # install text editors + vim-tiny \ + nano \ + wget \ + curl \ + git \ + # 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 \ + ttf-wqy-microhei \ + xfonts-wqy \ + # clean up + && rm -rf /var/lib/apt/lists/* \ + && apt-get clean + +RUN apt-get update && \ + apt-get install --no-install-recommends -y \ + ca-certificates + +# 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 +# allow installing when the main user is root +ENV npm_config_unsafe_perm=true +# need to enable corepack to set yarn version +RUN corepack enable +# set the yarn version to 4 to get yarn berry, which does not install modules into node_modules +RUN yarn set version 4.3.1 + +RUN npm --version \ + && 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-yarn-berry/README.md b/base-internal/releases/node-22/22.19.0-yarn-berry/README.md new file mode 100644 index 0000000000..9dd9607c40 --- /dev/null +++ b/base-internal/releases/node-22/22.19.0-yarn-berry/README.md @@ -0,0 +1,15 @@ +# cypress/base-internal:22.19.0-yarn-berry + +A Docker image with all dependencies pre-installed based on Debian Bookworm 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: + +#### Dependency Additions + +- xauth (to run xvfb inside system-tests) +- build-essential to install `make` and other linux build packages +- Yarn Berry (v4.3.1) instead of classic Yarn + +#### 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-yarn-berry/build.sh b/base-internal/releases/node-22/22.19.0-yarn-berry/build.sh new file mode 100755 index 0000000000..60b9a14442 --- /dev/null +++ b/base-internal/releases/node-22/22.19.0-yarn-berry/build.sh @@ -0,0 +1,9 @@ +#!/bin/bash + +set -e+x + +# build image with Cypress dependencies +LOCAL_NAME=cypress/base-internal:22.19.0-yarn-berry + +echo "Building $LOCAL_NAME" +docker build -t $LOCAL_NAME . --platform linux/amd64 diff --git a/base-internal/releases/node-22/22.19.0/Dockerfile b/base-internal/releases/node-22/22.19.0/Dockerfile new file mode 100644 index 0000000000..1f0bf5787a --- /dev/null +++ b/base-internal/releases/node-22/22.19.0/Dockerfile @@ -0,0 +1,56 @@ +# build it with command +# docker build -t cypress/base-internal:22.19.0 --platform linux/amd64 . +# +FROM node:22.19.0-bookworm-slim + +RUN apt-get update && \ + apt-get install --no-install-recommends -y \ + libgtk2.0-0 \ + libgtk-3-0 \ + libnotify-dev \ + libgconf-2-4 \ + libgbm-dev \ + libnss3 \ + libxss1 \ + libasound2 \ + 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 \ + ttf-wqy-microhei \ + xfonts-wqy \ + # clean up + && rm -rf /var/lib/apt/lists/* \ + && apt-get clean + +# 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/README.md b/base-internal/releases/node-22/22.19.0/README.md new file mode 100644 index 0000000000..f4de30b27c --- /dev/null +++ b/base-internal/releases/node-22/22.19.0/README.md @@ -0,0 +1,14 @@ +# cypress/base-internal:22.19.0 + +A Docker image with all dependencies pre-installed based on Debian Bookworm. + +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/build.sh b/base-internal/releases/node-22/22.19.0/build.sh new file mode 100755 index 0000000000..352866dd5c --- /dev/null +++ b/base-internal/releases/node-22/22.19.0/build.sh @@ -0,0 +1,9 @@ +#!/bin/bash + +set -e+x + +# build image with Cypress dependencies +LOCAL_NAME=cypress/base-internal:22.19.0 + +echo "Building $LOCAL_NAME" +docker build -t $LOCAL_NAME . --platform linux/amd64