AXOR-AI commited on
Commit
a17faa6
·
verified ·
1 Parent(s): bbddc0a

Update Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +50 -35
Dockerfile CHANGED
@@ -1,48 +1,63 @@
1
- # Start from a Python+Node compatible Debian image
2
- FROM python:3.12-slim
3
 
4
- # Use root user (default for Debian images)
5
  USER root
6
 
7
- # Install system dependencies
8
- RUN apt-get update && \
9
- apt-get install -y \
10
- curl \
11
- ffmpeg \
12
- git \
13
- build-essential \
14
- chromium \
15
- postgresql-client \
16
- ca-certificates \
17
- && apt-get clean && rm -rf /var/lib/apt/lists/*
18
-
19
- # Install Node.js (replace 20.x with your required version)
20
- RUN curl -fsSL https://deb.nodesource.com/setup_20.x | bash - && \
21
- apt-get install -y nodejs && \
22
- npm install -g npm
23
-
24
- # Install n8n globally
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
25
  RUN npm install -g n8n@1.97.1
26
 
27
- # (Optional) Install community n8n nodes or your custom extensions
28
  RUN mkdir -p /data/community-nodes && \
29
  cd /data/community-nodes && \
30
  npm install n8n-nodes-puppeteer puppeteer
31
  ENV N8N_CUSTOM_EXTENSIONS="/data/community-nodes"
32
 
33
- # Python ML/deep learning dependencies
34
- RUN pip install --upgrade pip && \
35
- pip install torch openai-whisper yt-dlp
36
-
37
- # Environment variables
38
- ENV N8N_RUNNERS_ENABLED=true
39
- ENV N8N_REINSTALL_MISSING_PACKAGES=true
40
- ENV PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=true
41
- ENV PUPPETEER_EXECUTABLE_PATH=/usr/bin/chromium
42
-
43
- # Set up folders (adjust as you need)
44
- RUN mkdir -p /root/.n8n/database /root/.n8n/config /root/.n8n/workflows /root/.n8n/logs && \
45
- chmod -R 777 /root/.n8n
46
 
47
  WORKDIR /data
48
 
 
1
+ FROM node:20-alpine
 
2
 
 
3
  USER root
4
 
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=true
13
+ ARG N8N_HOST=$N8N_HOST
14
+ ARG N8N_PORT=$N8N_PORT
15
+ ARG N8N_PROTOCOL=https
16
+ ARG N8N_EDITOR_BASE_URL=$N8N_EDITOR_BASE_URL
17
+ ARG WEBHOOK_URL=$WEBHOOK_URL
18
+ ARG GENERIC_TIMEZONE=$GENERIC_TIMEZONE
19
+ ARG TZ=$TZ
20
+ ARG N8N_ENCRYPTION_KEY=$N8N_ENCRYPTION_KEY
21
+ ARG DB_TYPE=$DB_TYPE
22
+ ARG DB_POSTGRESDB_SCHEMA=$DB_POSTGRESDB_SCHEMA
23
+ ARG DB_POSTGRESDB_HOST=$DB_POSTGRESDB_HOST
24
+ ARG DB_POSTGRESDB_DATABASE=$DB_POSTGRESDB_DATABASE
25
+ ARG DB_POSTGRESDB_PORT=$DB_POSTGRESDB_PORT
26
+ ARG DB_POSTGRESDB_USER=$DB_POSTGRESDB_USER
27
+ ARG DB_POSTGRESDB_PASSWORD=$DB_POSTGRESDB_PASSWORD
28
+ ENV N8N_RUNNERS_ENABLED=true
29
+ ENV N8N_REINSTALL_MISSING_PACKAGES=true
30
+
31
+ RUN apk add --no-cache \
32
+ git \
33
+ python3 \
34
+ py3-pip \
35
+ make \
36
+ g++ \
37
+ build-base \
38
+ cairo-dev \
39
+ pango-dev \
40
+ chromium \
41
+ postgresql-client \
42
+ ffmpeg
43
+
44
+ ENV PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=true
45
+ ENV PUPPETEER_EXECUTABLE_PATH=/usr/bin/chromium-browser
46
+
47
+ RUN npm rebuild
48
+
49
+ RUN pip install torch --extra-index-url https://download.pytorch.org/whl/cpu --break-system-packages
50
+ RUN pip install openai-whisper --break-system-packages
51
+
52
  RUN npm install -g n8n@1.97.1
53
 
 
54
  RUN mkdir -p /data/community-nodes && \
55
  cd /data/community-nodes && \
56
  npm install n8n-nodes-puppeteer puppeteer
57
  ENV N8N_CUSTOM_EXTENSIONS="/data/community-nodes"
58
 
59
+ RUN mkdir -p $DATABASE_PATH $CONFIG_PATH $WORKFLOWS_PATH $LOGS_PATH \
60
+ && chmod -R 777 $BASE_PATH
 
 
 
 
 
 
 
 
 
 
 
61
 
62
  WORKDIR /data
63