生成可下载的PDF

问题描述 投票:0回答:1

技术堆栈: 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,在云端运行发布。 任何帮助将不胜感激

node.js docker google-cloud-platform nestjs google-cloud-run
1个回答
0
投票

最常见的错误原因是 docker 文件中缺少依赖项或 puppeteer 无法找到 chromium 的正确路径。您可以检查这些 StackOverflow 线程:

© www.soinside.com 2019 - 2024. All rights reserved.