FROM node:20-alpine USER root # ============================================ # 1. OUTILS SYSTÈME # ============================================ RUN apk add --no-cache \ ca-certificates openssl bind-tools curl wget bash \ git python3 py3-pip make g++ build-base \ cairo-dev pango-dev jpeg-dev giflib-dev \ postgresql-client ffmpeg yt-dlp \ font-noto font-noto-cjk ttf-freefont ttf-dejavu ttf-liberation # ============================================ # 2. CHROMIUM # ============================================ RUN apk add --no-cache \ chromium \ chromium-chromedriver \ nss freetype harfbuzz font-noto-emoji # ============================================ # 3. N8N + PLAYWRIGHT # ============================================ RUN npm install -g n8n@latest # Installer playwright-core globalement RUN npm install -g playwright-core # ============================================ # 4. SERVEUR PDF # ============================================ WORKDIR /app COPY pdf-server.js /app/pdf-server.js RUN npm init -y && npm install express playwright-core # ============================================ # 5. VARIABLES # ============================================ ENV PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=true ENV PUPPETEER_EXECUTABLE_PATH=/usr/bin/chromium-browser ENV PLAYWRIGHT_CHROMIUM_EXECUTABLE_PATH=/usr/bin/chromium-browser ENV PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1 ENV N8N_USER_FOLDER=/data/.n8n ENV N8N_COMMUNITY_PACKAGES_ENABLED=true ENV N8N_REINSTALL_MISSING_PACKAGES=true # ============================================ # 6. PERMISSIONS # ============================================ RUN mkdir -p /data/.n8n && chmod -R 777 /data/.n8n # ============================================ # 7. SCRIPT DE DÉMARRAGE # ============================================ COPY start.sh /start.sh RUN chmod +x /start.sh CMD ["/start.sh"]