FROM node:22-bookworm-slim USER root # Debian + Node 22 avoids the isolated-vm/V8 build failure seen on Node 20 Alpine. RUN apt-get update \ && apt-get install -y --no-install-recommends \ ca-certificates openssl dnsutils curl wget bash \ git python3 make g++ \ libcairo2 libpango-1.0-0 libjpeg62-turbo libgif7 \ postgresql-client ffmpeg yt-dlp \ chromium chromium-driver \ libnss3 libfreetype6 libharfbuzz0b \ fonts-noto fonts-noto-cjk fonts-noto-color-emoji fonts-freefont-ttf fonts-dejavu fonts-liberation \ && rm -rf /var/lib/apt/lists/* RUN npm install -g n8n@latest WORKDIR /app COPY pdf-server.js /app/pdf-server.js RUN npm init -y \ && npm install --omit=dev express playwright-core \ && npm cache clean --force ENV PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=true ENV PUPPETEER_EXECUTABLE_PATH=/usr/bin/chromium ENV PLAYWRIGHT_CHROMIUM_EXECUTABLE_PATH=/usr/bin/chromium ENV PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1 ENV N8N_USER_FOLDER=/data/.n8n ENV N8N_COMMUNITY_PACKAGES_ENABLED=true ENV PORT=7860 ENV N8N_PORT=7860 ENV N8N_LISTEN_ADDRESS=0.0.0.0 ENV PDF_SERVER_HOST=127.0.0.1 ENV PDF_SERVER_PORT=3000 COPY start.sh /start.sh RUN chmod +x /start.sh ENTRYPOINT [] CMD ["/start.sh"]