Headless Chrome browser fail to launch on windows container?

Viewed 348

I'm using windows nanoserver container to launch puppeteer but it fails and I'm not sure what's wrong with my code

here's my docker file

FROM mcr.microsoft.com/windows/nanoserver:1903

COPY nodejs /windows/system32
CMD [ "node.exe" ]

COPY package.json ./

RUN npm install

# Bundle app source
COPY . .

ENTRYPOINT [ "node", "./server.js" ]

nodejs is a the node folder on my machine

and here's my package.json

{
    "dependencies": {
        "puppeteer": "^5.5.0",
        "@axe-core/puppeteer": "^4.1.0"
    }
}

and here's my server.js

const { AxePuppeteer } = require('@axe-core/puppeteer');
const puppeteer = require('puppeteer');
 
(async () => {
  const browser = await puppeteer.launch({ headless: true,
                ignoreDefaultArgs: ['--disable-extensions'],
            args: ['--disable-dev-shm-usage', '--no-sandbox', '--disable-gpu', '--disable-setuid-sandbox'],
            });
  const page = await browser.newPage();
 
  await page.goto('https://stackoverflow.com/');
 
  const results = await new AxePuppeteer(page).analyze();
  
  console.log(results);
 
  await page.close();
  await browser.close();
})();

So if I build the docker image then run

docker build -t chromeHeadless
docker run chromeHeadless

I get this error

(node:1228) UnhandledPromiseRejectionWarning: Error: Failed to launch the browser process!


TROUBLESHOOTING: https://github.com/puppeteer/puppeteer/blob/main/docs/troubleshooting.md

    at onClose (C:\app\node_modules\puppeteer\lib\cjs\puppeteer\node\BrowserRunner.js:193:20)           at Interface.<anonymous> (C:\app\node_modules\puppeteer\lib\cjs\puppeteer\node\BrowserRunner.js:183:68)
    at Interface.emit (events.js:326:22)
    at Interface.close (readline.js:424:8)
    at Socket.onend (readline.js:202:10)
    at Socket.emit (events.js:326:22)
    at endReadableNT (_stream_readable.js:1244:12)
    at processTicksAndRejections (internal/process/task_queues.js:80:21)
(Use `node --trace-warnings ...` to show where the warning was created)
(node:1228) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 1)
(node:1228) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
0 Answers
Related