

Sh -c 'echo "deb stable main" > /etc/apt//google.list' & \Īpt-get install google-chrome-stable -y -no-install-recommends & \įROM /lambda/nodejs:14.2022.09.09.11 Wget -quiet -output-document=- | gpg -dearmor > /etc/apt//google-archive.gpg & \

RUN apt-get update & apt-get install gnupg wget -y & \ # Note: this installs the necessary libs to make the browser work with Puppeteer. That's why we prefer Debian variants to make it easier.Įvery major version of Node.js in built over a version of Debian, and that Debian version comes with an old version of Chromium, which one could be not compatible with the latest version of Puppeteer.ĮNV PUPPETEER_SKIP_CHROMIUM_DOWNLOAD true Yeah, we can run Chromium using Alpine Linux, but we'll need a few extra steps to make it run. it's important to know what are the different between the available variants.

we want to run a web browser inside a container. This is because it was tested with the latest Chromium stable release. If we use the Docker images for Node.js v14 LTS Gallium, when installing the chromium package from apt, it will be v90.0, which can have compatibility issues with the latest Puppeteer. This guide helps to use Puppeteer inside a Docker container using the Node.js image. You should find Puppeteer executes successfully, provided proper Chrome flags are used.Puppeteer is a Node.js library which provides a high-level API to control Chromium (or Firefox) browsers over the DevTools Protocol. Chrome will write into /tmp instead.Īdd your JavaScript to your container with a COPY instruction.

If you’re uncomfortable with this, you’ll need to manually configure working Chrome sandboxing, which is a more involved process. It’s vital you ensure your Docker containers are strongly isolated from your host. Using these flags could allow malicious web content to escape the browser process and compromise the host.
