EnzGamers commited on
Commit
92f5b85
·
verified ·
1 Parent(s): ca0220d

Update Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +55 -17
Dockerfile CHANGED
@@ -1,18 +1,56 @@
1
- # version: "3.8"
2
- # services:
3
- # n8n:
4
- image: docker.n8n.io/n8nio/n8n:1.64.3
5
- restart: always
6
- environment:
7
- - N8N_HOST=${N8N_HOST}
8
- - N8N_PORT=${N8N_PORT}
9
- - N8N_PROTOCOL=http
10
- - NODE_ENV=production
11
- - WEBHOOK_URL=https://${N8N_HOST}/
12
- - GENERIC_TIMEZONE=${GENERIC_TIMEZONE}
13
- - N8N_SECURE_COOKIE=false
14
- volumes:
15
- - n8n_data:/home/node/.n8n
16
 
17
- volumes:
18
- n8n_data:
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ARG NODE_VERSION=20
2
+ FROM n8nio/base:${NODE_VERSION}
 
 
 
 
 
 
 
 
 
 
 
 
 
3
 
4
+ ARG N8N_VERSION
5
+ RUN if [ -z "$N8N_VERSION" ] ; then echo "The N8N_VERSION argument is missing!" ; exit 1; fi
6
+
7
+ LABEL org.opencontainers.image.title="n8n"
8
+ LABEL org.opencontainers.image.description="Workflow Automation Tool"
9
+ LABEL org.opencontainers.image.source="https://github.com/n8n-io/n8n"
10
+ LABEL org.opencontainers.image.url="https://n8n.io"
11
+ LABEL org.opencontainers.image.version=${N8N_VERSION}
12
+
13
+ ENV N8N_VERSION=${N8N_VERSION}
14
+ ENV NODE_ENV=production
15
+ ENV N8N_RELEASE_TYPE=stable
16
+ RUN set -eux; \
17
+ npm install -g --omit=dev n8n@${N8N_VERSION} --ignore-scripts && \
18
+ npm rebuild --prefix=/usr/local/lib/node_modules/n8n sqlite3 && \
19
+ rm -rf /usr/local/lib/node_modules/n8n/node_modules/@n8n/chat && \
20
+ rm -rf /usr/local/lib/node_modules/n8n/node_modules/n8n-design-system && \
21
+ rm -rf /usr/local/lib/node_modules/n8n/node_modules/n8n-editor-ui/node_modules && \
22
+ find /usr/local/lib/node_modules/n8n -type f -name "*.ts" -o -name "*.js.map" -o -name "*.vue" | xargs rm -f && \
23
+ rm -rf /root/.npm
24
+
25
+ # Setup the Task Runner Launcher
26
+ ARG TARGETPLATFORM
27
+ ARG LAUNCHER_VERSION=0.1.1
28
+ ENV N8N_RUNNERS_MODE=internal_launcher \
29
+ N8N_RUNNERS_LAUNCHER_PATH=/usr/local/bin/task-runner-launcher
30
+ COPY n8n-task-runners.json /etc/n8n-task-runners.json
31
+ # First, download, verify, then extract the launcher binary
32
+ # Second, chmod with 4555 to allow the use of setuid
33
+ # Third, create a new user and group to execute the Task Runners under
34
+ RUN \
35
+ if [[ "$TARGETPLATFORM" = "linux/amd64" ]]; then export ARCH_NAME="x86_64"; \
36
+ elif [[ "$TARGETPLATFORM" = "linux/arm64" ]]; then export ARCH_NAME="aarch64"; fi; \
37
+ mkdir /launcher-temp && \
38
+ cd /launcher-temp && \
39
+ wget https://github.com/n8n-io/task-runner-launcher/releases/download/${LAUNCHER_VERSION}/task-runner-launcher-$ARCH_NAME-unknown-linux-musl.zip && \
40
+ wget https://github.com/n8n-io/task-runner-launcher/releases/download/${LAUNCHER_VERSION}/task-runner-launcher-$ARCH_NAME-unknown-linux-musl.sha256 && \
41
+ sha256sum -c task-runner-launcher-$ARCH_NAME-unknown-linux-musl.sha256 && \
42
+ unzip -d $(dirname ${N8N_RUNNERS_LAUNCHER_PATH}) task-runner-launcher-$ARCH_NAME-unknown-linux-musl.zip task-runner-launcher && \
43
+ cd - && \
44
+ rm -r /launcher-temp && \
45
+ chmod 4555 ${N8N_RUNNERS_LAUNCHER_PATH} && \
46
+ addgroup -g 2000 task-runner && \
47
+ adduser -D -u 2000 -g "Task Runner User" -G task-runner task-runner
48
+
49
+ COPY docker-entrypoint.sh /
50
+
51
+ RUN \
52
+ mkdir .n8n && \
53
+ chown node:node .n8n
54
+ ENV SHELL /bin/sh
55
+ USER node
56
+ ENTRYPOINT ["tini", "--", "/docker-entrypoint.sh"]