1
0
mirror of https://github.com/vimagick/dockerfiles.git synced 2024-11-24 08:52:31 +02:00
dockerfiles/browserless
2019-06-27 05:15:23 +08:00
..
docker-compose.yml upgrade statsd to 0.8.2 2019-06-05 19:06:43 +08:00
docker-stack.yml add docker-stack.yml 2019-06-27 05:15:23 +08:00
README.md update browserless 2018-11-13 17:38:17 +08:00

browserless

Browserless makes it easy to run your puppeteer scripts in an optimized way. It takes care of all the binaries and managing of Chrome so you don't have to.

docker-compose.yml

browserless:
  image: browserless/chrome
  ports:
    - "3000:3000"
  environment:
    - DEBUG=browserless/chrome
    - MAX_CONCURRENT_SESSIONS=10
    - CONNECTION_TIMEOUT=600000
    - MAX_QUEUE_LENGTH=10
    - ENABLE_CORS=true
    - CHROME_REFRESH_TIME=3600000
  shm_size: 2gb
  restart: always

screenshot.js

'use strict';

const puppeteer = require('puppeteer');

(async() => {
  const browser = await puppeteer.connect({browserWSEndpoint: 'ws://localhost:3000'});
  const page = await browser.newPage();
  await page.goto('https://www.google.com/', {waitUntil: 'networkidle2'});
  await page.screenshot({path: 'google.png', fullPage: true});
  await browser.close();
})();

Up and Running

$ docker-compose up -d
$ PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=true npm install puppeteer

$ node screenshot.js
$ imgcat google.png

$ http http://127.0.0.1:3000/screenshot \
       url=https://www.youtube.com \
       options:='{"fullPage":true}' \
       gotoOptions:='{"waitUntil":"networkidle2"}' > youtube.png
$ imgcat youtube.png