AXOR-AI commited on
Commit
25fbeb5
·
verified ·
1 Parent(s): 82ee42a

Update Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +32 -21
Dockerfile CHANGED
@@ -5,7 +5,6 @@ LABEL maintainer="Xiaoliang <xiaoliang.zero@gmail.com>"
5
  # --- ENVIRONMENT SETUP FOR ROOT ---
6
  ENV PNPM_HOME="/root/.local/share/pnpm"
7
  ENV PATH="$PNPM_HOME:/opt/conda/bin:/usr/local/bin:$PATH"
8
- ENV PLAYWRIGHT_BROWSERS_PATH="/ms-playwright"
9
  ENV N8N_REINSTALL_MISSING_PACKAGES=true
10
 
11
  # Install mamba, tini, Node.js >=20.19,<25, and pnpm as root
@@ -13,47 +12,59 @@ RUN conda install -y -c conda-forge mamba tini && \
13
  mamba install -y -c conda-forge "nodejs>=20.19,<25" && \
14
  npm install -g pnpm
15
 
16
- # Prepare global dirs for pnpm and Playwright for root
17
  RUN mkdir -p $PNPM_HOME && \
18
- pnpm config set global-bin-dir $PNPM_HOME && \
19
- mkdir -p /ms-playwright && chmod 0777 /ms-playwright
20
-
21
- # Install Playwright globally as root and install system dependencies + browser binaries
22
- RUN pnpm add -g playwright && npx playwright install --with-deps
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
23
 
24
  # --- USER SETUP ---
25
  RUN useradd -m n8nuser
26
 
27
- RUN chmod -R 777 /ms-playwright
28
- RUN chown -R n8nuser:n8nuser /ms-playwright
29
-
30
  USER n8nuser
31
  WORKDIR /home/n8nuser
32
 
33
  # --- ENVIRONMENT SETUP FOR n8nuser ---
34
  ENV PNPM_HOME="/home/n8nuser/.local/share/pnpm"
35
  ENV PATH="$PNPM_HOME:/opt/conda/bin:/usr/local/bin:$PATH"
36
- ENV PLAYWRIGHT_BROWSERS_PATH="/ms-playwright"
37
  ENV N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true
38
  ENV N8N_RUNNERS_ENABLED=true
 
 
39
 
40
  # Create pnpm global dir for n8nuser and install n8n
41
  RUN mkdir -p $PNPM_HOME && \
42
  pnpm config set global-bin-dir $PNPM_HOME && \
43
  pnpm add -g n8n
44
 
45
- # (Optional) Create playwright cache for n8nuser
46
- RUN mkdir -p /home/n8nuser/.cache/ms-playwright && chmod -R 777 /home/n8nuser/.cache
47
-
48
- # Set up project for n8nuser, install Playwright as a dev dependency, download browser binaries (user-level)
49
- RUN npm init -y
50
- RUN npm install -D playwright
51
- RUN npx playwright install
52
-
53
- # Install n8n-nodes-playwright into .n8n/nodes for community node compatibility (and install dependencies)
54
  RUN mkdir -p /home/n8nuser/.n8n/nodes && \
55
  cd /home/n8nuser/.n8n/nodes && \
56
- npm install n8n-nodes-playwright
57
 
58
  # (Optional but recommended) Set strict permissions for n8n config
59
  RUN mkdir -p /home/n8nuser/.n8n && chmod 700 /home/n8nuser/.n8n
 
5
  # --- ENVIRONMENT SETUP FOR ROOT ---
6
  ENV PNPM_HOME="/root/.local/share/pnpm"
7
  ENV PATH="$PNPM_HOME:/opt/conda/bin:/usr/local/bin:$PATH"
 
8
  ENV N8N_REINSTALL_MISSING_PACKAGES=true
9
 
10
  # Install mamba, tini, Node.js >=20.19,<25, and pnpm as root
 
12
  mamba install -y -c conda-forge "nodejs>=20.19,<25" && \
13
  npm install -g pnpm
14
 
15
+ # Prepare global dirs for pnpm for root
16
  RUN mkdir -p $PNPM_HOME && \
17
+ pnpm config set global-bin-dir $PNPM_HOME
18
+
19
+ # --- Install Chromium and ALL dependencies from conda-forge ---
20
+ RUN mamba install -y -c conda-forge \
21
+ chromium \
22
+ nss \
23
+ glib \
24
+ freetype \
25
+ harfbuzz \
26
+ ca-certificates \
27
+ font-ttf-dejavu-sans-mono \
28
+ font-ttf-ubuntu \
29
+ font-ttf-inconsolata \
30
+ font-ttf-source-code-pro \
31
+ xorg-libxcomposite \
32
+ xorg-libxdamage \
33
+ xorg-libxrandr \
34
+ xorg-libxshmfence \
35
+ xorg-libxkbfile \
36
+ xorg-libxfixes \
37
+ xorg-libxext \
38
+ xorg-libx11 \
39
+ xorg-libxau \
40
+ xorg-libxdmcp \
41
+ xorg-libxcb \
42
+ dbus \
43
+ && conda clean -a -y
44
 
45
  # --- USER SETUP ---
46
  RUN useradd -m n8nuser
47
 
 
 
 
48
  USER n8nuser
49
  WORKDIR /home/n8nuser
50
 
51
  # --- ENVIRONMENT SETUP FOR n8nuser ---
52
  ENV PNPM_HOME="/home/n8nuser/.local/share/pnpm"
53
  ENV PATH="$PNPM_HOME:/opt/conda/bin:/usr/local/bin:$PATH"
 
54
  ENV N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true
55
  ENV N8N_RUNNERS_ENABLED=true
56
+ ENV PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=true
57
+ ENV PUPPETEER_EXECUTABLE_PATH=/opt/conda/bin/chromium
58
 
59
  # Create pnpm global dir for n8nuser and install n8n
60
  RUN mkdir -p $PNPM_HOME && \
61
  pnpm config set global-bin-dir $PNPM_HOME && \
62
  pnpm add -g n8n
63
 
64
+ # --- Install n8n-nodes-puppeteer as a community node ---
 
 
 
 
 
 
 
 
65
  RUN mkdir -p /home/n8nuser/.n8n/nodes && \
66
  cd /home/n8nuser/.n8n/nodes && \
67
+ npm install n8n-nodes-puppeteer
68
 
69
  # (Optional but recommended) Set strict permissions for n8n config
70
  RUN mkdir -p /home/n8nuser/.n8n && chmod 700 /home/n8nuser/.n8n