技术堆栈: Node.js(nest.js), 码头工人, GCP - 云运行,
国家公共管理: Chromium:最新
NPM:(尝试了两个木偶版本)
“木偶师”:“13.5.0”:
问题: 错误:无法启动浏览器进程!生成 /usr/bin/chromium-browser ENOENT
“傀儡师”:“22.7.1”
问题: 找不到 Chrome(版本 124.0.6367.78)。如果出现以下任一情况,就会发生这种情况。 1. 在运行脚本之前您没有执行安装(例如
npx puppeteer browsers install chrome
)或
2.您的缓存路径配置不正确(即:/home/node/.cache/puppeteer)。
这是我的 Dockerfile(包括 chromium 安装的部分)
Dockerfile
# Build
FROM node:20-alpine AS build
# Installs latest Chromium package.
RUN apk add --no-cache \
chromium \
nss \
freetype \
harfbuzz \
ca-certificates \
ttf-freefont
RUN ls -l /usr/bin/chromium
WORKDIR /Project/api
ENV PUPPETEER_SKIP_DOWNLOAD="true"
COPY package*.json ./
RUN npm cache clean --force
RUN npm install
COPY . .
RUN npm run build
index.js(启动 chrome)
let browser = await puppeteer.launch({
executablePath: puppeteer.executablePath(),
args: ['no-sandbox', 'disable-setuid-sandbox']
});
这样就可以在本地成功生成pdf,在云端运行发布。 任何帮助将不胜感激
最常见的错误原因是 docker 文件中缺少依赖项或 puppeteer 无法找到 chromium 的正确路径。您可以检查这些 StackOverflow 线程: