basyx commited on
Commit
42c5e3c
·
verified ·
1 Parent(s): 618803a

Update Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +55 -39
Dockerfile CHANGED
@@ -1,47 +1,63 @@
1
- FROM node:22-bookworm
2
 
 
3
  USER root
4
 
5
- RUN apt-get update && \
6
- apt-get install -y --no-install-recommends \
7
- chromium \
8
- ffmpeg \
9
- git \
10
- curl \
11
- wget \
12
- python3 \
13
- python3-pip \
14
- build-essential \
15
- libcairo2-dev \
16
- libpango1.0-dev \
17
- libjpeg-dev \
18
- libgif-dev \
19
- librsvg2-dev \
20
- postgresql-client && \
21
- python3 -m pip install --break-system-packages --no-cache-dir yt-dlp && \
22
- npm install -g n8n@latest && \
23
- apt-get clean && \
24
- rm -rf /var/lib/apt/lists/*
25
-
26
- RUN useradd -m node && \
27
- mkdir -p /home/node/.n8n /data && \
28
- chown -R node:node /home/node /data
29
-
30
- ENV N8N_HOST=0.0.0.0
31
- ENV N8N_PORT=7860
32
- ENV PORT=7860
33
- ENV N8N_PROTOCOL=http
34
- ENV N8N_RUNNERS_ENABLED=true
35
- ENV NODE_FUNCTION_ALLOW_BUILTIN=*
36
- ENV NODE_FUNCTION_ALLOW_EXTERNAL=*
 
 
 
 
 
 
 
 
 
 
37
  ENV PUPPETEER_SKIP_DOWNLOAD=true
38
- ENV PUPPETEER_EXECUTABLE_PATH=/usr/bin/chromium
39
- ENV N8N_USER_FOLDER=/home/node/.n8n
40
 
41
- WORKDIR /data
42
 
43
- EXPOSE 7860
 
 
 
 
 
44
 
45
- USER node
 
46
 
47
- CMD ["n8n"]
 
 
1
+ FROM node:24-alpine
2
 
3
+ # Set user to root for installation
4
  USER root
5
 
6
+ # Arguments that can be passed at build time
7
+ ARG N8N_PATH=/usr/local/lib/node_modules/n8n
8
+ ARG BASE_PATH=/root/.n8n
9
+ ARG DATABASE_PATH=$BASE_PATH/database
10
+ ARG CONFIG_PATH=$BASE_PATH/config
11
+ ARG WORKFLOWS_PATH=$BASE_PATH/workflows
12
+ ARG LOGS_PATH=$BASE_PATH/logs
13
+ ARG N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=$N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS
14
+ ARG N8N_RUNNERS_ENABLED=true
15
+ ARG allowVulnerableTags=true
16
+ ARG N8N_HOST=$N8N_HOST
17
+ ARG N8N_PORT=$N8N_PORT
18
+ ARG N8N_PROTOCOL=https
19
+ ARG N8N_EDITOR_BASE_URL=$N8N_EDITOR_BASE_URL
20
+ ARG WEBHOOK_URL=$WEBHOOK_URL
21
+ ARG GENERIC_TIMEZONE=$GENERIC_TIMEZONE
22
+ ARG TZ=$TZ
23
+ ARG N8N_ENCRYPTION_KEY=$N8N_ENCRYPTION_KEY
24
+ ARG DB_TYPE=$DB_TYPE
25
+ ARG DB_POSTGRESDB_SCHEMA=$DB_POSTGRESDB_SCHEMA
26
+ ARG DB_POSTGRESDB_HOST=$DB_POSTGRESDB_HOST
27
+ ARG DB_POSTGRESDB_DATABASE=$DB_POSTGRESDB_DATABASE
28
+ ARG DB_POSTGRESDB_PORT=$DB_POSTGRESDB_PORT
29
+ ARG DB_POSTGRESDB_USER=$DB_POSTGRESDB_USER
30
+ ARG DB_POSTGRESDB_PASSWORD=$DB_POSTGRESDB_PASSWORD
31
+ ARG NODE_FUNCTION_ALLOW_BUILTIN=*
32
+ ARG NODE_FUNCTION_ALLOW_EXTERNAL=*
33
+ # Install system dependencies
34
+ RUN apk add --no-cache \
35
+ git \
36
+ python3 \
37
+ py3-pip \
38
+ make \
39
+ g++ \
40
+ build-base \
41
+ cairo-dev \
42
+ pango-dev \
43
+ chromium \
44
+ postgresql-client \
45
+ yt-dlp
46
+
47
+ # Set environment variables
48
  ENV PUPPETEER_SKIP_DOWNLOAD=true
49
+ ENV PUPPETEER_EXECUTABLE_PATH=/usr/bin/chromium-browser
 
50
 
 
51
 
52
+ # Install n8n globally
53
+ RUN npm install -g n8n@2.27.4
54
+
55
+ # Create necessary directories (<<<<< this is the line that was modified)
56
+ RUN mkdir -p $BASE_PATH \
57
+ && chmod -R 777 $BASE_PATH
58
 
59
+ # Set working directory
60
+ WORKDIR /data
61
 
62
+ # Start n8n
63
+ CMD ["n8n", "start"]