javaeeduke commited on
Commit
85ced2a
·
verified ·
1 Parent(s): 0b303f7

Update Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +1 -47
Dockerfile CHANGED
@@ -1,47 +1 @@
1
- FROM node:24-alpine
2
-
3
- # Set user to root for installation
4
- USER root
5
-
6
- # Install system dependencies
7
- RUN apk add --no-cache \
8
- git \
9
- python3 \
10
- py3-pip \
11
- make \
12
- g++ \
13
- build-base \
14
- cairo-dev \
15
- pango-dev \
16
- chromium \
17
- postgresql-client \
18
- yt-dlp
19
-
20
- # Set Puppeteer paths for Chromium
21
- ENV PUPPETEER_SKIP_DOWNLOAD=true
22
- ENV PUPPETEER_EXECUTABLE_PATH=/usr/bin/chromium-browser
23
-
24
- # Install n8n globally
25
- RUN npm install -g n8n@2.14.2
26
-
27
- # 关键修复 1:将 n8n 的数据主目录、数据库、密钥文件全部强制重定向到 /data
28
- #(在 HF Space 中,只有 /data 支持开启 Persistent Storage 保持数据不丢失)
29
- ENV N8N_USER_FOLDER=/data
30
- ENV N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=false
31
- ENV N8N_RUNNERS_ENABLED=true
32
-
33
- # 关键修复 2:允许工作流中使用所有 Node.js 内置模块和外部 npm 包
34
- ENV NODE_FUNCTION_ALLOW_BUILTIN=*
35
- ENV NODE_FUNCTION_ALLOW_EXTERNAL=*
36
-
37
- # 默认端口(Hugging Face 强制要求监听 7860)
38
- ENV N8N_PORT=7860
39
-
40
- # 关键修复 3:创建 /data 目录并放开权限,确保 HF 分配的任意随机低权限用户都能读写
41
- RUN mkdir -p /data && chmod -R 777 /data
42
-
43
- # 设置工作目录
44
- WORKDIR /data
45
-
46
- # 启动 n8n
47
- CMD ["n8n", "start"]
 
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"]