Sign inSign up

hoanghd/chromium

By hoanghd

Updated about 1 month ago

Chromium for Serverless platforms (Lambda/nodejs:v18, Puppeteer)

Image
0

611

hoanghd/chromium repository overview

Image

docker-compose.yml

version: "3"

services:
  chromium:
    image: hoanghd/chromium:24
    restart: always
    ports:
      - 9000:8080
    volumes:
      - .:/var/task/
    command: index.handler

index.mjs

import chromium from '@sparticuz/chromium'
import puppeteer from 'puppeteer-core'

export const handler = async(event) => {
  chromium.setHeadlessMode = true
  chromium.setGraphicsMode = false

  const browser = await puppeteer.launch({
    args: chromium.args,
    ignoreHTTPSErrors: true,
    headless: chromium.headless,
    defaultViewport: chromium.defaultViewport,
    executablePath: await chromium.executablePath()
  })

  try {
    const page = await browser.newPage()
    await page.goto('https://gallery.ecr.aws/lambda/nodejs', {waitUntil: 'networkidle2'})
    console.log(await page.title())
  }
  catch( error ){
    console.dir({event, error})
  }

  await browser.close()

  return {}
}
Run
docker-compose up
Invoke the function
curl -XPOST "http://localhost:9000/2015-03-31/functions/function/invocations" -d '{"payload":"hello world!"}'

Tag summary

Content type

Image

Digest

sha256:2ad9cf170

Size

533.9 MB

Last updated

about 1 month ago

docker pull hoanghd/chromium:24