| FROM node:22-bookworm-slim |
|
|
| USER root |
|
|
| ARG N8N_VERSION=2.9.4 |
|
|
| |
| 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"] |