22# Dependencies are cached until package.json/pnpm-lock.yaml change
33# Each stage can be built independently via --target
44
5- FROM node:22.21.1-slim AS base
5+ FROM adguard/ node-ssh :22.22--0 AS base
66SHELL ["/bin/bash" , "-lc" ]
77
8- USER root
9-
10- # Install git (not included in slim image) and pnpm, then configure git
11- RUN apt-get update && \
12- apt-get install -y --no-install-recommends git && \
13- rm -rf /var/lib/apt/lists/* && \
14- npm install -g pnpm@10.7.1 && \
15- git config --global --add safe.directory '*'
16-
178WORKDIR /scriptlets
189
1910ENV PNPM_STORE=/pnpm-store
@@ -24,19 +15,10 @@ RUN pnpm config set store-dir /pnpm-store
2415# ============================================================================
2516# Stage: base-puppeteer
2617# Heavy base with bundled Chromium — used only for QUnit tests
27- # node v22.21.1 is used in this image
2818# ============================================================================
29- FROM ghcr.io /puppeteer/puppeteer: 24.35.0 AS base-puppeteer
19+ FROM adguard /puppeteer-runner:22.21.1-- 24.35.0-- 0 AS base-puppeteer
3020SHELL ["/bin/bash" , "-lc" ]
3121
32- # by default the puppeteer image is run as a non-root user "pptruser"
33- # but root user is needed for global npm installs
34- USER root
35-
36- # Install pnpm globally and configure git
37- RUN npm install -g pnpm@10.7.1 && \
38- git config --global --add safe.directory '*'
39-
4022WORKDIR /scriptlets
4123
4224ENV PNPM_STORE=/pnpm-store
0 commit comments