mirror of
https://github.com/Abdulazizzn/n8n-enterprise-unlocked.git
synced 2025-12-16 09:36:44 +00:00
76 lines
3.2 KiB
Docker
76 lines
3.2 KiB
Docker
ARG NODE_VERSION=22
|
|
ARG N8N_VERSION=snapshot
|
|
ARG LAUNCHER_VERSION=1.3.1
|
|
ARG TARGETPLATFORM
|
|
|
|
# ==============================================================================
|
|
# STAGE 1: System Dependencies & Base Setup
|
|
# ==============================================================================
|
|
FROM n8nio/base:22-ffmpeg AS system-deps
|
|
|
|
# ==============================================================================
|
|
# STAGE 2: Application Artifact Processor
|
|
# ==============================================================================
|
|
FROM alpine:3.22.0 AS app-artifact-processor
|
|
|
|
COPY ./compiled /app/
|
|
|
|
# ==============================================================================
|
|
# STAGE 3: Task Runner Launcher
|
|
# ==============================================================================
|
|
FROM alpine:3.22.0 AS launcher-downloader
|
|
ARG TARGETPLATFORM
|
|
ARG LAUNCHER_VERSION
|
|
|
|
RUN set -e; \
|
|
case "$TARGETPLATFORM" in \
|
|
"linux/amd64") ARCH_NAME="amd64" ;; \
|
|
"linux/arm64") ARCH_NAME="arm64" ;; \
|
|
*) echo "Unsupported platform: $TARGETPLATFORM" && exit 1 ;; \
|
|
esac; \
|
|
mkdir /launcher-temp && cd /launcher-temp; \
|
|
wget -q "https://github.com/n8n-io/task-runner-launcher/releases/download/${LAUNCHER_VERSION}/task-runner-launcher-${LAUNCHER_VERSION}-linux-${ARCH_NAME}.tar.gz"; \
|
|
wget -q "https://github.com/n8n-io/task-runner-launcher/releases/download/${LAUNCHER_VERSION}/task-runner-launcher-${LAUNCHER_VERSION}-linux-${ARCH_NAME}.tar.gz.sha256"; \
|
|
echo "$(cat task-runner-launcher-${LAUNCHER_VERSION}-linux-${ARCH_NAME}.tar.gz.sha256) task-runner-launcher-${LAUNCHER_VERSION}-linux-${ARCH_NAME}.tar.gz" > checksum.sha256; \
|
|
sha256sum -c checksum.sha256; \
|
|
mkdir -p /launcher-bin; \
|
|
tar xzf task-runner-launcher-${LAUNCHER_VERSION}-linux-${ARCH_NAME}.tar.gz -C /launcher-bin; \
|
|
cd / && rm -rf /launcher-temp
|
|
|
|
# ==============================================================================
|
|
# STAGE 4: Final Runtime Image
|
|
# ==============================================================================
|
|
FROM system-deps AS runtime
|
|
|
|
ARG N8N_VERSION
|
|
ARG N8N_RELEASE_TYPE=dev
|
|
ENV NODE_ENV=production
|
|
ENV N8N_RELEASE_TYPE=${N8N_RELEASE_TYPE}
|
|
ENV NODE_ICU_DATA=/usr/local/lib/node_modules/full-icu
|
|
ENV SHELL=/bin/sh
|
|
|
|
WORKDIR /home/node
|
|
|
|
COPY --from=app-artifact-processor /app /usr/local/lib/node_modules/n8n
|
|
COPY --from=launcher-downloader /launcher-bin/* /usr/local/bin/
|
|
COPY docker/images/n8n/docker-entrypoint.sh /
|
|
COPY docker/images/n8n/n8n-task-runners.json /etc/n8n-task-runners.json
|
|
|
|
RUN cd /usr/local/lib/node_modules/n8n && \
|
|
npm rebuild sqlite3 && \
|
|
ln -s /usr/local/lib/node_modules/n8n/bin/n8n /usr/local/bin/n8n && \
|
|
mkdir -p /home/node/.n8n && \
|
|
chown -R node:node /home/node
|
|
|
|
RUN cd /usr/local/lib/node_modules/n8n/node_modules/pdfjs-dist && npm install @napi-rs/canvas
|
|
|
|
EXPOSE 5678/tcp
|
|
USER node
|
|
ENTRYPOINT ["tini", "--", "/docker-entrypoint.sh"]
|
|
|
|
LABEL org.opencontainers.image.title="n8n" \
|
|
org.opencontainers.image.description="Workflow Automation Tool" \
|
|
org.opencontainers.image.source="https://github.com/n8n-io/n8n" \
|
|
org.opencontainers.image.url="https://n8n.io" \
|
|
org.opencontainers.image.version=${N8N_VERSION}
|