这是我的dockerfile代码:
FROM node:18-alpine As base
ENV PUPPETEER_SKIP_CHROMIUM_DOWNLOAD true
RUN apk update && apk add curl gnupg \
&& curl --location --silent https://dl-ssl.google.com/linux/linux_signing_key.pub | apk add - \
&& sh -c 'echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apk/sources.list.d/google.list' \
&& apk update \
&& apk add google-chrome-stable --no-cache --repository=http://dl-cdn.alpinelinux.org/alpine/edge/main \
&& rm -rf /var/cache/apk/*
USER node
WORKDIR /app
COPY --chown=node:node package*.json .
RUN npm ci
COPY --chown=node:node . .
我的后端运行在Docker容器中,并使用Nest Js构建。我想在转换HTML内容后保存PDF文件。我使用Puppeteer库,为了让我的转换工作,我需要运行Chromium(无论它是否是无头的)。
当我们运行命令“npm i puppeteer”时,我以为我不需要安装Chrome。它在开发期间工作,但由于某种原因,它在Docker容器中不工作。
我不确定我的Docker文件中的代码是否可以安装Chrome。我在网上找到了这段代码并将其粘贴到我的Docker文件中,但它显示错误
对此有什么解决办法吗?
1条答案
按热度按时间mrfwxfqh1#
我相信你正在使用一个过时的命令,试试:
完全只是一个直觉,但我假设你正在使用这个教程:https://dev.to/cloudx/how-to-use-puppeteer-inside-a-docker-container-568c
但看起来你用的是老办法。