Spaces:
Paused
Paused
Update Dockerfile
Browse files- 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"]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|