These images provide all of the required dependencies for running Cypress in Docker.
We build three main images, click on the image name to see the available tags and versions.
||All operating system dependencies, no Cypress, and no browsers.|
||All operating system dependencies and some browsers.|
||All operating system dependencies, Cypress, and some browsers installed globally.|
Of these images, we provide multiple tags for various operating systems and specific browser versions. These allow you to target specific combinations you need.
It is recommended to use a specific image tag, and not rely on the
default tag. For example, it is better to use
cypress/base. Even better it is to use full version of the image, like
cypress/base:12.18.0 - we will never overwrite the existing Docker images to prevent accidental changes.
All of the images and tags are published to DockerHub under
These images have all dependencies necessary to install and run Cypress. Just install your NPM dependencies (including Cypress) and run the tests. We utilize many of these docker images in our own projects, with different CI providers.
If you want to use the
cypress/included image, read Run Cypress with a single Docker command
- examples/included-as-non-root shows how to build a new Docker image on top of
cypress/includedimage and run the tests as non-root user
- examples/included-as-non-root-alternative shows another approach to allow built-in non-root user
nodeto run tests using
- examples/included-as-non-root-mapped shows how to build a Docker image on top of
cypress/includedthat runs with a non-root user that matches the id of the user on the host machine. This way, the permissions on any files created during the test run match the user's permissions on the host machine.
- examples/included-with-plugins shows how to use locally installed Cypress plugins while running
Cannot run post-install hook
Some versions of Node restrict running the
postinstall hook with the following error message:
lifecycle email@example.com~postinstall: cannot run in wd firstname.lastname@example.org
In that case run install with
npm install --unsafe-perm flag, or set an environment variable in the container
Blank screen in Chrome
When running headed tests with X11 forwarding in Cypress v4 you might see a blank Chrome screen. Try disabling memory sharing by setting the following environment variables:
export QT_X11_NO_MITSHM=1 export _X11_NO_MITSHM=1 export _MITSHM=0
See issue #270