In our Dockerfile we have:
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
This waits for Nginx to start and then runs a Node.js script (which crawls some pages on the Nginx webserver).
Are the commands correct in # Update? Does the order of the commands matter, in order for it to update properly and fully?
Node.js/NPM appears to update but throws the following warning in the console whilst it works (it takes some time):
#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 }
How can we fix this warning about an unsupported engine/mismatched versions? I.E. how can we update from Node v20.9.0 to v20.10.0 (or latest)?
Docker specifically recommend that you should use apt-get update in their best practices. Should we also be updating Node.js/NPM like the above? Could updating potentially cause any issues for our install of Google Puppeteer? I.E. because those later versions are untested on puppeteer:latest by Google.