title: Docker Node-Alpine: puppeteer-core@1.20.0 throw error in page.pdf()
body: <p>When checking <a href="https://www.npmjs.com/package/puppeteer-core/v/1.20.0" rel="nofollow noreferrer">puppeteer document</a>, it requires to install <strong>puppeteer-core</strong> since version <em>1.17.0</em>. However, I would like to install puppeteer &amp; puppeteer-core with version 1.20.0 in below <em>Dockerfile</em> (suppose that when I install puppeteer-core, Chromium version 77 should be downloaded), there is error comes out.</p>
  
  <p>Dockerfile:  </p>
  
  <pre><code>FROM node:12-alpine
  ENV CHROME_BIN="/usr/bin/chromium-browser"\
      PUPPETEER_SKIP_CHROMIUM_DOWNLOAD="true"
  RUN set -x \
      &amp;&amp; apk update \
      &amp;&amp; apk upgrade \
      &amp;&amp; echo "127.0.0.1 localhost" &gt;&gt; /etc/hosts \
      &amp;&amp; echo "http://dl-cdn.alpinelinux.org/alpine/edge/testing" &gt; /etc/apk/repositories \
      &amp;&amp; echo "http://dl-cdn.alpinelinux.org/alpine/edge/community" &gt;&gt; /etc/apk/repositories \
      &amp;&amp; echo "http://dl-cdn.alpinelinux.org/alpine/edge/main" &gt;&gt; /etc/apk/repositories \
      #### chromium: used to run Puppeteer
      &amp;&amp; apk add --no-cache g++ chromium \
      #### install NodeJS related packages
      &amp;&amp; npm install puppeteer@1.20.0 puppeteer-core@1.20.0
  ...
  </code></pre>
  
  <p>Case 1: If run without change in Dockerfile:  </p>
  
  <blockquote>
    <p>Error: Protocol error (IO.read): Invalid parameters handle: string value expected<br>
        &nbsp; at /usr/src/app/node_modules/puppeteer/lib/Connection.js:183:56<br>
        &nbsp; at new Promise ()<br>
        &nbsp; at CDPSession.send (/usr/src/app/node_modules/puppeteer/lib/Connection.js:182:12)<br>
        &nbsp; at Function.readProtocolStream (/usr/src/app/node_modules/puppeteer/lib/helper.js:250:37)<br>
        &nbsp; at async Page.pdf (/usr/src/app/node_modules/puppeteer/lib/Page.js:994:12)<br>
        &nbsp; at async printPdf (/usr/src/app/Testing.js:252:5) </p>
  </blockquote>
  
  <pre><code>// Testing.js:252 
  await page.pdf({
      path: 'tmp/file',
      format: printOptions.format,
      printBackground: true
  });
  </code></pre>
  
  <p>Case 2: If skip <code>apk add --no-cache g++ chromium</code> in Dockerfile:  </p>
  
  <blockquote>
    <p>Error: Failed to launch chrome! spawn /usr/bin/chromium-browser ENOENT</p>
  </blockquote>
  
  <p><strong>Questions:</strong></p>
  
  <ol>
  <li>With puppeteer-core install why can't I use Chromium?  </li>
  <li>How to download Chromium version 77/latest?  </li>
  </ol>