11#
22# Example build command:
33# podman build -t puppeteer -f puppeteer.containerfile
4+ # Or:
5+ # podman build -t puppeteer -f puppeteer.containerfile --build-arg=UID=1001 --build-arg=GID=1001
46#
57# Example run command:
68# podman run --rm --init -v $(pwd):/app -w /app --userns=keep-id -it puppeteer xvfb-run npm test
79# Or:
810# podman run --rm --init -v $(pwd):/app -w /app --user node2 --userns=keep-id:uid=1001,gid=1001 -it puppeteer xvfb-run npm test
911#
10- # Last change: 2025-01-20 Alpine 3.21.2 Node 23.6.0
12+ # Last change at : 2025-02-05, Alpine 3.21.2, Node 23.6.0
1113FROM docker.io/node:alpine
1214
1315# If set to values different than the ones used by Node.js (1000:1000 at the time of writing),
@@ -23,14 +25,17 @@ RUN apk add udev gtk+3.0 xorg-server ttf-freefont dbus xvfb xvfb-run chromium gi
2325 && mkdir -p /etc/chromium/policies/recommended\
2426 && chmod -R 777 /etc/chromium/policies
2527
26- RUN test -n "${UID}" && test "${UID}" != $(id -u node)\
27- && addgroup -g ${GID} node2\
28- && adduser -u ${UID} -G node2 -s /bin/bash -D node2\
29- && cp -a /home/node /home/node2\
30- && chown -R node2:node2 /home/node2
28+ RUN test -z "${UID}" || test "${UID}" = $(id -u node)\
29+ || (\
30+ addgroup -g ${GID} node2\
31+ && adduser -u ${UID} -G node2 -s /bin/bash -D node2\
32+ && cp -a /home/node /home/node2\
33+ && chown -R node2:node2 /home/node2\
34+ )\
35+ || true
3136
32- ENV CHROME_BIN /usr/bin/chromium-browser
33- ENV CHROME_POLICIES /etc/chromium/policies
37+ ENV CHROME_BIN= /usr/bin/chromium-browser
38+ ENV CHROME_POLICIES= /etc/chromium/policies
3439
3540USER node:node
3641
0 commit comments