FROM node:22-bookworm-slim USER root ARG N8N_VERSION=2.9.4 # Install dependencies using Debian's apt-get RUN apt-get update && apt-get install -y --no-install-recommends \ git \ python3 \ make \ g++ \ build-essential \ libcairo2-dev \ libpango1.0-dev \ chromium \ postgresql-client \ tzdata \ gosu \ ca-certificates \ && rm -rf /var/lib/apt/lists/* ENV PUPPETEER_SKIP_DOWNLOAD=true ENV PUPPETEER_EXECUTABLE_PATH=/usr/bin/chromium ENV N8N_USER_FOLDER=/data/.n8n ENV N8N_LISTEN_ADDRESS=0.0.0.0 ENV N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true ENV NODE_FUNCTION_ALLOW_BUILTIN=* ENV NODE_FUNCTION_ALLOW_EXTERNAL=* ENV NODE_OPTIONS=--dns-result-order=ipv4first RUN npm install -g "n8n@${N8N_VERSION}" \ && npm cache clean --force RUN mkdir -p /data/.n8n \ && chown -R node:node /data WORKDIR /data COPY entrypoint.sh /entrypoint.sh RUN chmod +x /entrypoint.sh ENTRYPOINT ["/entrypoint.sh"] CMD ["sh", "-lc", "export N8N_PORT=${PORT:-${N8N_PORT:-5678}}; n8n start"]