Skip to content

Instantly share code, notes, and snippets.

@myisaak
Last active July 24, 2024 18:41
Show Gist options
  • Save myisaak/6fb9c28256db1f044610c35841444829 to your computer and use it in GitHub Desktop.
Save myisaak/6fb9c28256db1f044610c35841444829 to your computer and use it in GitHub Desktop.
Puppeteer with Alpine inside multi-staged Dockerfile
FROM node:13-alpine as base
LABEL maintainer="Isaak Eriksson <isaak.eriksson@gmail.com>"
ENV PUPPETEER_SKIP_CHROMIUM_DOWNLOAD true
ENV PUPPETEER_EXECUTABLE_PATH /usr/bin/chromium-browser
WORKDIR /src
RUN apk update && apk add --no-cache --virtual \
.build-deps \
udev \
ttf-opensans \
chromium \
ca-certificates
FROM base as build
COPY ./package.json .
RUN yarn install --silent --pure-lockfile
FROM base
COPY --from=build /src/node_modules node_modules
COPY . .
WORKDIR /out
RUN addgroup -S pptruser && adduser -S -g pptruser -G pptruser pptruser \
&& mkdir -p /home/pptruser/Downloads \
&& chown -R pptruser:pptruser /home/pptruser \
&& chown -R pptruser:pptruser /out
USER pptruser
CMD node /src/index.js
@MichaelLeeHobbs
Copy link

You are a life saver.

@myisaak
Copy link
Author

myisaak commented Feb 16, 2024

You’re welcome 😅

@josgraha
Copy link

i ❤️ u good sir

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment