26 lines · 1.3 KB · Dockerfile
RawDownload
# Headless Linux box for reproducing the desktop daemon attach/spawn wedge# against the REAL packaged app (no macOS, no Aqua, no host GUI). The linux# bundle is built on the host (electron-builder --linux --arm64) and mounted at# /app; this image only provides Xvfb plus Electron's runtime shared libraries# and a Node to run the CDP repro driver.FROM node:22-bookworm-slim # Electron 41 runtime deps + Xvfb. Kept to the libs Chromium actually dlopen()s# at startup so the image stays small and the failure surface is just "missing# lib" (loud) rather than a silent renderer crash.RUN apt-get update && apt-get install -y --no-install-recommends \      xvfb xauth \      libnss3 libnspr4 \      libatk1.0-0 libatk-bridge2.0-0 libatspi2.0-0 \      libgtk-3-0 libgbm1 libdrm2 \      libxcomposite1 libxdamage1 libxfixes3 libxrandr2 libxkbcommon0 \      libasound2 libcups2 libpango-1.0-0 libcairo2 \      libx11-6 libxcb1 libxext6 libxi6 libxtst6 libglib2.0-0 \      ca-certificates \    && rm -rf /var/lib/apt/lists/* COPY repro.mjs /repro/repro.mjs # xvfb-run gives Chromium a virtual display; --no-sandbox is required because the# container runs as root and we are not setuid-installing chrome-sandbox.ENTRYPOINT ["xvfb-run", "-a", "-s", "-screen 0 1280x800x24", "node", "/repro/repro.mjs"]