Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
94 changes: 94 additions & 0 deletions base-internal/releases/node-22/22.19.0-bullseye/Dockerfile
Original file line number Diff line number Diff line change
@@ -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"
14 changes: 14 additions & 0 deletions base-internal/releases/node-22/22.19.0-bullseye/README.md
Original file line number Diff line number Diff line change
@@ -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
9 changes: 9 additions & 0 deletions base-internal/releases/node-22/22.19.0-bullseye/build.sh
Original file line number Diff line number Diff line change
@@ -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
26 changes: 26 additions & 0 deletions base-internal/releases/node-22/22.19.0-glibc-2.31/Dockerfile
Original file line number Diff line number Diff line change
@@ -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
15 changes: 15 additions & 0 deletions base-internal/releases/node-22/22.19.0-glibc-2.31/README.md
Original file line number Diff line number Diff line change
@@ -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
9 changes: 9 additions & 0 deletions base-internal/releases/node-22/22.19.0-glibc-2.31/build.sh
Original file line number Diff line number Diff line change
@@ -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
68 changes: 68 additions & 0 deletions base-internal/releases/node-22/22.19.0-yarn-berry/Dockerfile
Original file line number Diff line number Diff line change
@@ -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"
15 changes: 15 additions & 0 deletions base-internal/releases/node-22/22.19.0-yarn-berry/README.md
Original file line number Diff line number Diff line change
@@ -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
9 changes: 9 additions & 0 deletions base-internal/releases/node-22/22.19.0-yarn-berry/build.sh
Original file line number Diff line number Diff line change
@@ -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
56 changes: 56 additions & 0 deletions base-internal/releases/node-22/22.19.0/Dockerfile
Original file line number Diff line number Diff line change
@@ -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"
14 changes: 14 additions & 0 deletions base-internal/releases/node-22/22.19.0/README.md
Original file line number Diff line number Diff line change
@@ -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
9 changes: 9 additions & 0 deletions base-internal/releases/node-22/22.19.0/build.sh
Original file line number Diff line number Diff line change
@@ -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