javaeeduke commited on
Commit
63d6e71
·
verified ·
1 Parent(s): 85ced2a

Update Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +69 -1
Dockerfile CHANGED
@@ -1 +1,69 @@
1
- FROM node:24-alpine# Set user to root for installationUSER root# Arguments that can be passed at build timeARG N8N_PATH=/usr/local/lib/node_modules/n8nARG BASE_PATH=/root/.n8nARG DATABASE_PATH=$BASE_PATH/databaseARG CONFIG_PATH=$BASE_PATH/configARG WORKFLOWS_PATH=$BASE_PATH/workflowsARG LOGS_PATH=$BASE_PATH/logsARG N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=$N8N_ENFORCE_SETTINGS_FILE_PERMISSIONSARG N8N_RUNNERS_ENABLED=trueARG allowVulnerableTags=trueARG N8N_HOST=$N8N_HOSTARG N8N_PORT=$N8N_PORTARG N8N_PROTOCOL=httpsARG N8N_EDITOR_BASE_URL=$N8N_EDITOR_BASE_URLARG WEBHOOK_URL=$WEBHOOK_URLARG GENERIC_TIMEZONE=$GENERIC_TIMEZONEARG TZ=$TZARG N8N_ENCRYPTION_KEY=$N8N_ENCRYPTION_KEYARG DB_TYPE=$DB_TYPEARG DB_POSTGRESDB_SCHEMA=$DB_POSTGRESDB_SCHEMAARG DB_POSTGRESDB_HOST=$DB_POSTGRESDB_HOSTARG DB_POSTGRESDB_DATABASE=$DB_POSTGRESDB_DATABASEARG DB_POSTGRESDB_PORT=$DB_POSTGRESDB_PORTARG DB_POSTGRESDB_USER=$DB_POSTGRESDB_USERARG DB_POSTGRESDB_PASSWORD=$DB_POSTGRESDB_PASSWORDARG NODE_FUNCTION_ALLOW_BUILTIN=*ARG NODE_FUNCTION_ALLOW_EXTERNAL=*# Install system dependenciesRUN apk add --no-cache \ git \ python3 \ py3-pip \ make \ g++ \ build-base \ cairo-dev \ pango-dev \ chromium \ postgresql-client \ yt-dlp# Set environment variablesENV PUPPETEER_SKIP_DOWNLOAD=trueENV PUPPETEER_EXECUTABLE_PATH=/usr/bin/chromium-browser# Install n8n globallyRUN npm install -g n8n@2.14.2# Create necessary directories (<<<<< this is the line that was modified)RUN mkdir -p $BASE_PATH \ && chmod -R 777 $BASE_PATH# Set working directoryWORKDIR /data# Start n8nCMD ["n8n", "start"]
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
+
14
+ ARG N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=$N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS
15
+ ARG N8N_RUNNERS_ENABLED=true
16
+ ARG allowVulnerableTags=true
17
+
18
+ ARG N8N_HOST=$N8N_HOST
19
+ ARG N8N_PORT=$N8N_PORT
20
+ ARG N8N_PROTOCOL=https
21
+ ARG N8N_EDITOR_BASE_URL=$N8N_EDITOR_BASE_URL
22
+ ARG WEBHOOK_URL=$WEBHOOK_URL
23
+ ARG GENERIC_TIMEZONE=$GENERIC_TIMEZONE
24
+ ARG TZ=$TZ
25
+ ARG N8N_ENCRYPTION_KEY=$N8N_ENCRYPTION_KEY
26
+
27
+ ARG DB_TYPE=$DB_TYPE
28
+ ARG DB_POSTGRESDB_SCHEMA=$DB_POSTGRESDB_SCHEMA
29
+ ARG DB_POSTGRESDB_HOST=$DB_POSTGRESDB_HOST
30
+ ARG DB_POSTGRESDB_DATABASE=$DB_POSTGRESDB_DATABASE
31
+ ARG DB_POSTGRESDB_PORT=$DB_POSTGRESDB_PORT
32
+ ARG DB_POSTGRESDB_USER=$DB_POSTGRESDB_USER
33
+ ARG DB_POSTGRESDB_PASSWORD=$DB_POSTGRESDB_PASSWORD
34
+
35
+ ARG NODE_FUNCTION_ALLOW_BUILTIN=*
36
+ ARG NODE_FUNCTION_ALLOW_EXTERNAL=*
37
+
38
+ # Install system dependencies
39
+ RUN apk add --no-cache \
40
+ git \
41
+ python3 \
42
+ py3-pip \
43
+ make \
44
+ g++ \
45
+ build-base \
46
+ cairo-dev \
47
+ pango-dev \
48
+ chromium \
49
+ postgresql-client \
50
+ yt-dlp
51
+
52
+ # Set environment variables
53
+ ENV PUPPETEER_SKIP_DOWNLOAD=true
54
+ ENV PUPPETEER_EXECUTABLE_PATH=/usr/bin/chromium-browser
55
+
56
+ # Install n8n globally
57
+ RUN npm install -g n8n@2.14.2
58
+
59
+ # Create necessary directories
60
+ RUN mkdir -p "$BASE_PATH" && chmod -R 777 "$BASE_PATH"
61
+
62
+ # Set working directory
63
+ WORKDIR /data
64
+
65
+ # Start n8n
66
+ CMD ["n8n", "start"]
67
+ ```
68
+
69
+ 如果你愿意,我也可以顺手帮你把这个 Dockerfile 改成更规范/更安全的版本(不使用 777、避免 root 运行、把需要运行时生效的变量用 ENV/compose 传递)。你现在主要是“能 build 不报错”,还是要“生产可用更安全”?