Skip to content

Instantly share code, notes, and snippets.

@frank-dspeed
Created June 1, 2022 09:38
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save frank-dspeed/27ce1b053e97966a64ee14452ac557d8 to your computer and use it in GitHub Desktop.
Save frank-dspeed/27ce1b053e97966a64ee14452ac557d8 to your computer and use it in GitHub Desktop.
How to run pupeeter with a docker image as binary

docketeer.cjs

const os = require('os');
const path = require('path');
const fs = require('fs');

const dockerImage = 'browserless/chrome:latest'
const dockerExecutablePath = '/usr/bin/google-chrome'
const executablePath = path.join(__dirname, 'Chrome-Launcher');

const docker = `#!/bin/bash
docker run -p=9333:9333 -p=3000:3000 ${dockerImage} ${dockerExecutablePath} \${@}`

const debugBinary = `#!/bin/bash
echo "\${@}" > ${executablePath}.log.txt`

fs.writeFileSync(executablePath, docker);
fs.chmodSync(executablePath,'777');

const puppeteer = require('puppeteer');
const browser = puppeteer.launch({ 
    executablePath,
    userDataDir: './',
    args: [
        "--remote-debugging-address=0.0.0.0",
        "--no-sandbox",
        "--headless",
        "--disable-gpu",
        "--disable-software-rasterizer"
    ]
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment