Suggestion: There's a popular headless browser project Browserless, it is very simple to use, maintaining independent puppeteer docker image maybe painful sometime, browserless is a good choice : )
Puppeteer allows you to specify a remote location for chrome via the browserWSEndpoint option. Setting this for browserless is a single line of code change.
Before
const browser = await puppeteer.launch();
After
const browser = await puppeteer.connect({ browserWSEndpoint: 'ws://localhost:3000' });
Docker Image home page
Suggestion: There's a popular headless browser project Browserless, it is very simple to use, maintaining independent puppeteer docker image maybe painful sometime, browserless is a good choice : )
Before
After
Docker Image home page