在我们的Dockerfile
我们有:
FROM ghcr.io/puppeteer/puppeteer:latest AS pdf
WORKDIR /puppeteer
USER root
# Prerequisites
RUN apt-get update && apt-get install nginx -y
# Update
RUN npm update
RUN npm update -g
RUN npm install -g npm
# Dependencies
RUN npm install puppeteer
# Run
COPY ./pdf.js .
RUN chmod u+x pdf.js
RUN service nginx start && ./pdf.js
这会等待 Nginx 启动,然后运行 Node.js 脚本(该脚本会抓取 Nginx Web 服务器上的一些页面)。
中的命令正确吗# Update
?为了使其正确且完整地更新,命令的顺序是否重要?
Node.js/NPM 似乎已更新,但在运行时会在控制台中抛出以下警告(需要一些时间):
#43 3.167 npm WARN EBADENGINE Unsupported engine {
#43 3.169 npm WARN EBADENGINE package: '[email protected]',
#43 3.170 npm WARN EBADENGINE required: { node: '^18.17.1 || >=20.10.0' },
#43 3.172 npm WARN EBADENGINE current: { node: 'v20.9.0', npm: '10.1.0' }
#43 3.174 npm WARN EBADENGINE }
我们如何修复有关不支持的引擎/不匹配版本的警告?IE 如何从 Node 更新v20.9.0
到v20.10.0
(或最新)?
Docker 特别推荐你应该使用apt-get update
他们的最佳实践。我们是否也应该像上面那样更新 Node.js/NPM?更新可能会导致我们安装的Google Puppeteer出现任何问题吗?puppeteer:latest
IE,因为这些更高版本未经Google测试。
由于您的映像基于 Puppeteer 映像,因此您应该能够使用该映像中已提供的 Puppeteer 安装。这将确保 Node.js 设置与 Puppeteer 开发人员的期望一致。
Puppeteer 安装在用户中
/home/pptruser
并供用户使用pptruser
。您必须将入口点更改为nginx
以 root 身份启动的脚本,然后更改为pptruser
运行脚本。