baoyin2024 commited on
Commit
754fd3f
·
verified ·
1 Parent(s): 24f2192

Update Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +24 -44
Dockerfile CHANGED
@@ -1,30 +1,32 @@
1
  FROM node:24-alpine
2
 
3
- # Arguments that can be passed at build time (used as defaults for ENV)
 
 
4
  ARG N8N_PATH=/usr/local/lib/node_modules/n8n
5
- ARG BASE_PATH=/home/n8n/.n8n # User-specific home directory
6
  ARG DATABASE_PATH=$BASE_PATH/database
7
  ARG CONFIG_PATH=$BASE_PATH/config
8
  ARG WORKFLOWS_PATH=$BASE_PATH/workflows
9
  ARG LOGS_PATH=$BASE_PATH/logs
10
- ARG N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS
11
  ARG N8N_RUNNERS_ENABLED=true
12
  ARG allowVulnerableTags=true
13
- ARG N8N_HOST
14
- ARG N8N_PORT
15
  ARG N8N_PROTOCOL=https
16
- ARG N8N_EDITOR_BASE_URL
17
- ARG WEBHOOK_URL
18
- ARG GENERIC_TIMEZONE
19
- ARG TZ
20
- ARG N8N_ENCRYPTION_KEY
21
- ARG DB_TYPE
22
- ARG DB_POSTGRESDB_SCHEMA=public
23
- ARG DB_POSTGRESDB_HOST
24
- ARG DB_POSTGRESDB_DATABASE
25
- ARG DB_POSTGRESDB_PORT=5432
26
- ARG DB_POSTGRESDB_USER
27
- ARG DB_POSTGRESDB_PASSWORD
28
 
29
  # Install system dependencies
30
  RUN apk add --no-cache \
@@ -41,37 +43,15 @@ RUN apk add --no-cache \
41
  ffmpeg \
42
  yt-dlp
43
 
44
- # Set environment variables (using ARG as defaults)
45
  ENV PUPPETEER_SKIP_DOWNLOAD=true
46
  ENV PUPPETEER_EXECUTABLE_PATH=/usr/bin/chromium-browser
47
- ENV N8N_HOST=${N8N_HOST}
48
- ENV N8N_PORT=${N8N_PORT}
49
- ENV N8N_PROTOCOL=${N8N_PROTOCOL}
50
- ENV N8N_EDITOR_BASE_URL=${N8N_EDITOR_BASE_URL}
51
- ENV WEBHOOK_URL=${WEBHOOK_URL}
52
- ENV GENERIC_TIMEZONE=${GENERIC_TIMEZONE}
53
- ENV TZ=${TZ}
54
- ENV N8N_ENCRYPTION_KEY=${N8N_ENCRYPTION_KEY}
55
- ENV DB_TYPE=${DB_TYPE}
56
- ENV DB_POSTGRESDB_SCHEMA=${DB_POSTGRESDB_SCHEMA}
57
- ENV DB_POSTGRESDB_HOST=${DB_POSTGRESDB_HOST}
58
- ENV DB_POSTGRESDB_DATABASE=${DB_POSTGRESDB_DATABASE}
59
- ENV DB_POSTGRESDB_PORT=${DB_POSTGRESDB_PORT}
60
- ENV DB_POSTGRESDB_USER=${DB_POSTGRESDB_USER}
61
- ENV DB_POSTGRESDB_PASSWORD=${DB_POSTGRESDB_PASSWORD}
62
 
63
- # Create n8n user and group
64
- RUN addgroup -S n8n && adduser -S -G n8n n8n
65
-
66
- # Install n8n globally (as root)
67
- RUN npm install -g [email protected]
68
-
69
- # Create necessary directories and set ownership
70
  RUN mkdir -p $DATABASE_PATH $CONFIG_PATH $WORKFLOWS_PATH $LOGS_PATH \
71
- && chown -R n8n:n8n $BASE_PATH
72
-
73
- # Switch to n8n user
74
- USER n8n
75
 
76
  # Set working directory
77
  WORKDIR /data
 
1
  FROM node:24-alpine
2
 
3
+ # Set user to root for installation
4
+ USER root
5
+ # Arguments that can be passed at build time
6
  ARG N8N_PATH=/usr/local/lib/node_modules/n8n
7
+ ARG BASE_PATH=/root/.n8n
8
  ARG DATABASE_PATH=$BASE_PATH/database
9
  ARG CONFIG_PATH=$BASE_PATH/config
10
  ARG WORKFLOWS_PATH=$BASE_PATH/workflows
11
  ARG LOGS_PATH=$BASE_PATH/logs
12
+ ARG N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=$N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS
13
  ARG N8N_RUNNERS_ENABLED=true
14
  ARG allowVulnerableTags=true
15
+ ARG N8N_HOST=$N8N_HOST
16
+ ARG N8N_PORT=$N8N_PORT
17
  ARG N8N_PROTOCOL=https
18
+ ARG N8N_EDITOR_BASE_URL=$N8N_EDITOR_BASE_URL
19
+ ARG WEBHOOK_URL=$WEBHOOK_URL
20
+ ARG GENERIC_TIMEZONE=$GENERIC_TIMEZONE
21
+ ARG TZ=$TZ
22
+ ARG N8N_ENCRYPTION_KEY=$N8N_ENCRYPTION_KEY
23
+ ARG DB_TYPE=$DB_TYPE
24
+ ARG DB_POSTGRESDB_SCHEMA=$DB_POSTGRESDB_SCHEMA
25
+ ARG DB_POSTGRESDB_HOST=$DB_POSTGRESDB_HOST
26
+ ARG DB_POSTGRESDB_DATABASE=$DB_POSTGRESDB_DATABASE
27
+ ARG DB_POSTGRESDB_PORT=$DB_POSTGRESDB_PORT
28
+ ARG DB_POSTGRESDB_USER=$DB_POSTGRESDB_USER
29
+ ARG DB_POSTGRESDB_PASSWORD=$DB_POSTGRESDB_PASSWORD
30
 
31
  # Install system dependencies
32
  RUN apk add --no-cache \
 
43
  ffmpeg \
44
  yt-dlp
45
 
46
+ # Set environment variables
47
  ENV PUPPETEER_SKIP_DOWNLOAD=true
48
  ENV PUPPETEER_EXECUTABLE_PATH=/usr/bin/chromium-browser
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
49
 
50
+ # Install n8n globally
51
+ RUN npm install -g n8n@1.115.3
52
+ # Create necessary directories
 
 
 
 
53
  RUN mkdir -p $DATABASE_PATH $CONFIG_PATH $WORKFLOWS_PATH $LOGS_PATH \
54
+ && chmod -R 777 $BASE_PATH
 
 
 
55
 
56
  # Set working directory
57
  WORKDIR /data