Skip to content

Commit

Permalink
Docker example (puppeteer#721)
Browse files Browse the repository at this point in the history
  • Loading branch information
ebidel authored Sep 8, 2017
1 parent 113bdaf commit 8d2a427
Showing 1 changed file with 44 additions and 0 deletions.
44 changes: 44 additions & 0 deletions docs/troubleshooting.md
Original file line number Diff line number Diff line change
Expand Up @@ -91,3 +91,47 @@ xorg-x11-fonts-misc
const browser = await puppeteer.launch({args: ['--no-sandbox', '--disable-setuid-sandbox']});
```

## Running Puppeteer in Docker

Using headless Chrome Linux to run Puppeteer in Docker container can be tricky.
The bundled version Chromium that Puppeteer installs is missing the necessary
shared library dependencies.

To fix this, you'll need to install the latest version of Chrome dev in your
Dockerfile:

```
FROM node:8-slim
# Install latest chrome (dev) package.
# Note: this also installs the necessary libs so we don't need the previous RUN command.
RUN wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add - &&\
sh -c 'echo "deb http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google-chrome.list' &&\
apt-get update &&\
apt-get install -y google-chrome-unstable
# Uncomment to skip the chromium download when installing puppeteer. If you do,
# you'll need to launch puppeteer with:
# browser.launch({executablePath: 'google-chrome-unstable'})
# ENV PUPPETEER_SKIP_CHROMIUM_DOWNLOAD true
# Install puppeteer so it can be required by user code that gets ran in server.js.
RUN yarn add puppeteer
CMD ["google-chrome-unstable", "--no-sandbox"]
```

Build the container:

```bash
docker build -t puppeteer-chrome-linux .
```

Run the container by passing `node -e "<yourscript.js content as a string>` as the command:

```bash
docker run -i --rm --name puppeteer-chrome puppeteer-chrome-linux node -e "`cat yourscript.js`"
```

There's a full example at https://github.com/ebidel/try-puppeteer that shows
how to run this setup from a webserver running on App Engine Flex (Node).

0 comments on commit 8d2a427

Please sign in to comment.