Manus AI commited on
Commit
5a915ba
·
1 Parent(s): 77f745b

Fix Dockerfile for Hugging Face Spaces compatibility

Browse files
Files changed (1) hide show
  1. Dockerfile +17 -37
Dockerfile CHANGED
@@ -1,35 +1,8 @@
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=/data/.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 \
@@ -42,23 +15,30 @@ RUN apk add --no-cache \
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
- ENV N8N_USER_FOLDER=$BASE_PATH
51
-
52
 
53
  # Install n8n globally
54
- RUN npm install -g n8n@2.19.5
55
 
56
- # Create necessary directories
57
- RUN mkdir -p $BASE_PATH \
58
- && chmod -R 777 $BASE_PATH
59
 
60
  # Set working directory
61
- WORKDIR /data
 
 
 
 
 
 
62
 
63
  # Start n8n
64
- CMD ["n8n", "start"]
 
1
+ FROM node:20-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 \
 
15
  pango-dev \
16
  chromium \
17
  postgresql-client \
18
+ yt-dlp \
19
+ su-exec
20
 
21
  # Set environment variables
22
  ENV PUPPETEER_SKIP_DOWNLOAD=true
23
  ENV PUPPETEER_EXECUTABLE_PATH=/usr/bin/chromium-browser
24
+ ENV N8N_USER_FOLDER=/home/node/.n8n
25
+ ENV N8N_PORT=7860
26
 
27
  # Install n8n globally
28
+ RUN npm install -g n8n@latest
29
 
30
+ # Create necessary directories and set permissions
31
+ RUN mkdir -p /home/node/.n8n && \
32
+ chown -R node:node /home/node/.n8n
33
 
34
  # Set working directory
35
+ WORKDIR /home/node
36
+
37
+ # Hugging Face Spaces uses port 7860 by default
38
+ EXPOSE 7860
39
+
40
+ # Switch to non-root user
41
+ USER node
42
 
43
  # Start n8n
44
+ CMD ["n8n", "start"]