Docker Node:Alpine-12: 如何在 Docker 文件中安装 Chromium 73?
Docker Node:Alpine-12: how to install Chromium 73 in Dockerfile?
因为我想 运行 Puppeteer@1.19 但在 page.pdf() 中遇到错误。
刚才提到的一些 blob 将 Chromium 从版本 76 降级到 73。如何使用 node:alpine-12 在 Dockerfile 中执行此操作?谢谢
以下是我的设置(chromium 版本是 76):
FROM node:12-alpine
##########
## Setting for using Puppeteer (for using node:XX-alpine)
##########
ENV CHROME_BIN="/usr/bin/chromium-browser"\
PUPPETEER_SKIP_CHROMIUM_DOWNLOAD="true"
##########
## Update and Install packages
##########
RUN set -x \
&& apk update \
&& apk upgrade \
&& echo "127.0.0.1 localhost" >> /etc/hosts \
&& echo "http://dl-cdn.alpinelinux.org/alpine/edge/testing" > /etc/apk/repositories \
&& echo "http://dl-cdn.alpinelinux.org/alpine/edge/community" >> /etc/apk/repositories \
&& echo "http://dl-cdn.alpinelinux.org/alpine/edge/main" >> /etc/apk/repositories \
# add the packages
## g++: used to install NodeJS related packages
## chromium: used to run Puppeteer
&& apk add --no-cache g++ chromium
试图将最后一行 chromium
更改为 chromium-browser@73
或 chromium@73
但遇到以下错误:
The repository tag for world dependency 'chromium@73' does not exist
仅供参考,当我在 NodeJS 代码下方使用 运行ning 安装 chromium
时出错:
Line239: await page.pdf({
path: TEMP_DIR + filename,
format: 'A4',
printBackground: true
});
printPdf() Error
Error: Protocol error (IO.read): Invalid parameters handle: string value expected
at /usr/src/app/node_modules/puppeteer/lib/Connection.js:183:56
at new Promise ()
at CDPSession.send (/usr/src/app/node_modules/puppeteer/lib/Connection.js:182:12)
at Function.readProtocolStream (/usr/src/app/node_modules/puppeteer/lib/helper.js:241:37)
at async Page.pdf (/usr/src/app/node_modules/puppeteer/lib/Page.js:988:12)
at async printPdf (/usr/src/app/puppeteer.js:239:9)
at async /usr/src/app/puppeteer.js:129:21
-- ASYNC --
at Page. (/usr/src/app/node_modules/puppeteer/lib/helper.js:111:15)
at printPdf (/usr/src/app/puppeteer.js:239:20)
at processTicksAndRejections (internal/process/task_queues.js:85:5)
at async /usr/src/app/puppeteer.js:129:21 {
message: 'Protocol error (IO.read): Invalid parameters handle: string value expected'
}
chromium73 不存在于 nodejs 基础图像中使用的边缘分支中。您必须将分支设置为 v3.10 才能下载 chromium73。
FROM node:12-alpine
RUN apk add --no-cache chromium --repository=http://dl-cdn.alpinelinux.org/alpine/v3.10/main
验证安装
docker run -it --rm myalpine ash -c "apk -e info chromium"
因为我想 运行 Puppeteer@1.19 但在 page.pdf() 中遇到错误。
刚才提到的一些 blob 将 Chromium 从版本 76 降级到 73。如何使用 node:alpine-12 在 Dockerfile 中执行此操作?谢谢
以下是我的设置(chromium 版本是 76):
FROM node:12-alpine
##########
## Setting for using Puppeteer (for using node:XX-alpine)
##########
ENV CHROME_BIN="/usr/bin/chromium-browser"\
PUPPETEER_SKIP_CHROMIUM_DOWNLOAD="true"
##########
## Update and Install packages
##########
RUN set -x \
&& apk update \
&& apk upgrade \
&& echo "127.0.0.1 localhost" >> /etc/hosts \
&& echo "http://dl-cdn.alpinelinux.org/alpine/edge/testing" > /etc/apk/repositories \
&& echo "http://dl-cdn.alpinelinux.org/alpine/edge/community" >> /etc/apk/repositories \
&& echo "http://dl-cdn.alpinelinux.org/alpine/edge/main" >> /etc/apk/repositories \
# add the packages
## g++: used to install NodeJS related packages
## chromium: used to run Puppeteer
&& apk add --no-cache g++ chromium
试图将最后一行 chromium
更改为 chromium-browser@73
或 chromium@73
但遇到以下错误:
The repository tag for world dependency 'chromium@73' does not exist
仅供参考,当我在 NodeJS 代码下方使用 运行ning 安装 chromium
时出错:
Line239: await page.pdf({
path: TEMP_DIR + filename,
format: 'A4',
printBackground: true
});
printPdf() Error
Error: Protocol error (IO.read): Invalid parameters handle: string value expected
at /usr/src/app/node_modules/puppeteer/lib/Connection.js:183:56
at new Promise ()
at CDPSession.send (/usr/src/app/node_modules/puppeteer/lib/Connection.js:182:12)
at Function.readProtocolStream (/usr/src/app/node_modules/puppeteer/lib/helper.js:241:37)
at async Page.pdf (/usr/src/app/node_modules/puppeteer/lib/Page.js:988:12)
at async printPdf (/usr/src/app/puppeteer.js:239:9)
at async /usr/src/app/puppeteer.js:129:21
-- ASYNC --
at Page. (/usr/src/app/node_modules/puppeteer/lib/helper.js:111:15)
at printPdf (/usr/src/app/puppeteer.js:239:20)
at processTicksAndRejections (internal/process/task_queues.js:85:5)
at async /usr/src/app/puppeteer.js:129:21 { message: 'Protocol error (IO.read): Invalid parameters handle: string value expected'
}
chromium73 不存在于 nodejs 基础图像中使用的边缘分支中。您必须将分支设置为 v3.10 才能下载 chromium73。
FROM node:12-alpine
RUN apk add --no-cache chromium --repository=http://dl-cdn.alpinelinux.org/alpine/v3.10/main
验证安装
docker run -it --rm myalpine ash -c "apk -e info chromium"