node.js - Docker NodeJS Puppeteer@2.0.0 - 如何修复无法启动 chrome!问题
问题描述
没有设置 PUPPETEER_SKIP_CHROMIUM_DOWNLOAD true 和 CHROMIUM_PATH /usr/bin/chromium-browser 没有铬包
printPdf()
错误错误:无法启动 chrome!spawn /usr/src/app/node_modules/puppeteer/.local-chromium/linux-706915/chrome-linux/chrome ENOENT
通过设置 PUPPETEER_SKIP_CHROMIUM_DOWNLOAD true 和 CHROMIUM_PATH /usr/bin/chromium-browser 使用 chromium 包
下面是我的 Dockerfile:
FROM alpine:latest
WORKDIR /usr/src/app
RUN chmod -R 444 /etc/apk/
RUN echo "ipv6" >> /etc/modules
RUN set -x \
&& apk update \
&& apk upgrade \
RUN apk add -f
ENV PUPPETEER_SKIP_CHROMIUM_DOWNLOAD true
ENV CHROMIUM_PATH /usr/bin/chromium-browser
# Installs latest Chromium package.
RUN apk add --no-cache \
chromium \ ### with this, it is okay
nss \
freetype \
freetype-dev \
harfbuzz \
ca-certificates \
ttf-freefont \
nodejs \
npm \
yarn
RUN yarn add puppeteer@2.0.0 adal-node@0.2.0 azure-keyvault@3.0.4 azure-sb@0.11.1 azure-storage@2.10.3 http@0.0.0
COPY package*.json ./
EXPOSE 3000
CMD [ "npm", "start"]
下面是我的 puppeteer.js:
browser = await puppeteer.launch({
executablePath: '/usr/bin/chromium-browser', // if without using chromium package: executablePath: process.env.CHROMIUM_PATH,
args: ['--no-sandbox', '--enable-font-antialiasing', '--font-render-hinting=medium'],
timeout: LOAD_TIMEOUT,
headless: true
});
解决方案
只需将headless
值设为false
browser = await puppeteer.launch({
headless: true
});
推荐阅读
- http - 如何在登录页面中添加自定义错误消息通知
- r - 我在 R 中的 ggplot 中绘制了一个图,我得到的结果是一条垂直方向的点,没有 x 标签或标记
- reactjs - 反应管理员!无法使用 customRoutes 重定向到忘记密码页面
- antlr4 - 如何解决“以下规则集相互左递归”ANTLR错误
- python - 预提交在哪里安装“环境”?
- python - 如果长度大于某个值,则从列表列表中删除一个元素
- python-3.x - 有没有办法将信件传递给这个图书馆,期待一个元组?
- .net-core - 使用 VersionByNamespaceConvention 对 Webapi .net-core 进行版本化,而不是被迫在控制器上使用 RouteAttribute
- php - Foreach 复制复选框输入表单
- php - slim/twig-view 不适用于附加路由中间件