Run [dockerized Chromium or Firefox in headless remote debugging mode](https://github.com/nextools/images) and return `browserWSEndpoint` needed for `puppeteer.connect()`.
npm install @nextnextools/xromRun dockerized Chromium or Firefox in headless remote debugging mode and return browserWSEndpoint needed for puppeteer.connect().
``sh`
$ yarn add xrom
`ts
type TRunBrowserOptions = {
browser: 'chromium' | 'firefox',
version: string,
dockerUrlRoot?: string
port?: number,
fontsDir?: string,
mountVolumes?: {
from: string,
to: string,
}[],
cpus?: number,
cpusetCpus?: number[]
}
type TRunBrowserResult = {
browserWSEndpoint: string,
closeBrowser: () => Promise
}
runBrowser(options: TRunBrowserOptions) => Promise
`
`js
import { runBrowser } from 'xrom'
import puppeteer from 'puppeteer-core'
const { browserWSEndpoint } = await runBrowser({ browser: 'chromium' })
const browser = await puppeteer.connect({ browserWSEndpoint })
`
Make sure the final link, which is evaluated as ${dockerUrlRoot}/${browser}:${version}, points to a docker image that is valid and public.
`js``
const { browserWSEndpoint, closeBrowser } = await runBrowser({
dockerUrlRoot: 'ghcr.io/shenato/docker-browser',
browser: 'chromium',
version: opts.chromiumVersion,
fontsDir: opts.fontsDir,
})