2022-10-14 12:54:46 +00:00
|
|
|
# Docker
|
|
|
|
|
2023-11-24 10:01:53 +00:00
|
|
|
Puppeteer offers a Docker image that includes [Chrome for Testing](https://developer.chrome.com/blog/chrome-for-testing/) along with the required
|
2022-10-21 13:52:43 +00:00
|
|
|
dependencies and a pre-installed Puppeteer version. The image is available via
|
|
|
|
the
|
|
|
|
[GitHub Container Registry](https://github.com/puppeteer/puppeteer/pkgs/container/puppeteer).
|
|
|
|
The latest image is tagged as `latest` and other tags match Puppeteer versions.
|
|
|
|
For example,
|
2022-10-14 12:54:46 +00:00
|
|
|
|
2023-05-02 16:56:03 +00:00
|
|
|
```bash
|
2022-10-14 12:54:46 +00:00
|
|
|
docker pull ghcr.io/puppeteer/puppeteer:latest # pulls the latest
|
|
|
|
docker pull ghcr.io/puppeteer/puppeteer:16.1.0 # pulls the image that contains Puppeteer v16.1.0
|
|
|
|
```
|
|
|
|
|
2022-10-21 13:52:43 +00:00
|
|
|
The image is meant for running the browser in sandbox mode and therefore,
|
|
|
|
running the image requires the `SYS_ADMIN` capability.
|
2022-10-14 12:54:46 +00:00
|
|
|
|
|
|
|
## Usage
|
|
|
|
|
|
|
|
To use the docker image directly, run:
|
|
|
|
|
2023-05-02 16:56:03 +00:00
|
|
|
```bash
|
2022-10-14 12:54:46 +00:00
|
|
|
docker run -i --init --cap-add=SYS_ADMIN --rm ghcr.io/puppeteer/puppeteer:latest node -e "$(cat path/to/script.js)"
|
|
|
|
```
|
|
|
|
|
2022-10-21 13:52:43 +00:00
|
|
|
where `path/to/script.js` is the path relative to your working directory. Note
|
|
|
|
the image requires the `SYS_ADMIN` capability since the browser runs in sandbox
|
|
|
|
mode.
|
2022-10-14 12:54:46 +00:00
|
|
|
|
2022-10-21 13:52:43 +00:00
|
|
|
If you need to build an image based on a different base image, you can use our
|
|
|
|
[`Dockerfile`](https://github.com/puppeteer/puppeteer/blob/main/docker/Dockerfile)
|
|
|
|
as the starting point.
|
2024-04-05 13:11:52 +00:00
|
|
|
|
|
|
|
:::caution
|
|
|
|
|
|
|
|
Make sure to specify a init process via the `--init` flag or a custom `ENTRYPOINT`
|
|
|
|
to make sure all processes started by Puppeteer are managed properly.
|
|
|
|
|
|
|
|
:::
|
2024-05-06 07:34:02 +00:00
|
|
|
|
|
|
|
## dbus
|
|
|
|
|
|
|
|
The image installs and configures dbus for Chrome. Usually you would not
|
|
|
|
need dbus in the headless mode but you might see warnings in the browser
|
|
|
|
console. You can start the dbus service before launching
|
|
|
|
your application:
|
|
|
|
|
|
|
|
```
|
|
|
|
sudo service dbus start
|
|
|
|
```
|
|
|
|
|
|
|
|
See https://docs.docker.com/config/containers/multi-service_container/
|
|
|
|
for instructions how to start multiple processes in a container.
|