Version: 1.3.0

Running Playwright in Docker

Dockerfile.bionic is a playwright-ready image of playwright. This image includes all the dependencies needed to run browsers in a Docker container, including browsers.

Usage#

docker hub

This image is published on Docker Hub.

Pull the image#

$ docker pull mcr.microsoft.com/playwright:bionic

Run the image#

$ docker container run -it --rm --ipc=host --security-opt seccomp=seccomp_profile.json mcr.microsoft.com/playwright:bionic /bin/bash

seccomp_profile.json is needed to run Chromium with sandbox. This is a default Docker seccomp profile with extra user namespace cloning permissions:

[
{
"comment": "Allow create user namespaces",
"names": [
"clone",
"setns",
"unshare"
],
"action": "SCMP_ACT_ALLOW",
"args": [],
"includes": {},
"excludes": {}
}
]

NOTE: Using --ipc=host is recommended when using Chrome (Docker docs). Chrome can run out of memory without this flag.

Using on CI#

See our Continuous Integration guides for sample configs.

Development#

Build the image#

Use //docs/docker/build.sh to build the image.

$ ./docs/docker/build.sh

The image will be tagged as playwright:localbuild and could be run as:

$ docker run --rm -it playwright:localbuild /bin/bash

Push#

Docker images are published automatically by Github Actions. We currently publish the following images:

  • mcr.microsoft.com/playwright:dev - tip-of-tree image version.
  • mcr.microsoft.com/playwright:bionic - last Playwright release docker image.
  • mcr.microsoft.com/playwright:sha-XXXXXXX - docker image for every commit that changed docker files or browsers, marked with a short sha (first 7 digits of the SHA commit).

Base images#

playwright:bionic is based on Ubuntu 18.04 LTS (Bionic Beaver).

Alpine#

Browser builds for Firefox and WebKit are built for the glibc library. Alpine Linux and other distributions that are based on the musl standard library are not supported.