Perspicacious commited on
Commit
aa30655
·
verified ·
1 Parent(s): 91cdffa

Update Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +22 -58
Dockerfile CHANGED
@@ -3,94 +3,58 @@ FROM node:20-alpine
3
  USER root
4
 
5
  # ============================================
6
- # 1. CERTIFICATS SSL + OUTILS RÉSEAU
7
- # ============================================
8
- RUN apk add --no-cache \
9
- ca-certificates \
10
- openssl \
11
- bind-tools \
12
- curl \
13
- wget \
14
- bash
15
-
16
- RUN update-ca-certificates
17
-
18
- # ============================================
19
- # 2. OUTILS SYSTÈME DE BASE
20
  # ============================================
21
  RUN apk add --no-cache \
 
22
  git python3 py3-pip make g++ build-base \
23
  cairo-dev pango-dev jpeg-dev giflib-dev \
24
- postgresql-client ffmpeg yt-dlp
25
-
26
- # ============================================
27
- # 3. PDF (weasyprint pour livres KDP)
28
- # ============================================
29
- RUN apk add --no-cache \
30
- pandoc \
31
- ghostscript \
32
- poppler-utils \
33
- libreoffice-writer \
34
- libreoffice-calc \
35
- py3-weasyprint \
36
- fontconfig \
37
- ttf-dejavu \
38
- ttf-liberation \
39
- font-noto
40
 
41
  # ============================================
42
- # 4. NAVIGATEURS (Chromium)
43
  # ============================================
44
  RUN apk add --no-cache \
45
  chromium \
46
  chromium-chromedriver \
47
- nss \
48
- freetype \
49
- harfbuzz \
50
- ttf-freefont \
51
- font-noto-emoji
52
 
53
  # ============================================
54
- # 5. N8N
55
  # ============================================
56
  RUN npm install -g n8n@latest
57
 
 
 
 
58
  # ============================================
59
- # 6. VARIABLES D'ENVIRONNEMENT
 
 
 
 
 
 
 
60
  # ============================================
61
  ENV PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=true
62
  ENV PUPPETEER_EXECUTABLE_PATH=/usr/bin/chromium-browser
63
- ENV CHROME_BIN=/usr/bin/chromium-browser
64
  ENV PLAYWRIGHT_CHROMIUM_EXECUTABLE_PATH=/usr/bin/chromium-browser
65
  ENV PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1
66
-
67
  ENV N8N_USER_FOLDER=/data/.n8n
68
  ENV N8N_COMMUNITY_PACKAGES_ENABLED=true
69
  ENV N8N_REINSTALL_MISSING_PACKAGES=true
70
 
71
  # ============================================
72
- # 7. PERMISSIONS
73
  # ============================================
74
- WORKDIR /data
75
  RUN mkdir -p /data/.n8n && chmod -R 777 /data/.n8n
76
 
77
  # ============================================
78
- # 8. SCRIPT DE DÉMARRAGE (avec fix Playwright)
79
  # ============================================
80
- RUN echo '#!/bin/sh' > /start.sh && \
81
- echo 'mkdir -p /data/.n8n' >> /start.sh && \
82
- echo 'chmod -R 777 /data/.n8n' >> /start.sh && \
83
- echo '' >> /start.sh && \
84
- echo '# Fix pour n8n-nodes-playwright' >> /start.sh && \
85
- echo 'PLAYWRIGHT_DIR="/data/.n8n/.n8n/nodes/node_modules/n8n-nodes-playwright/dist/nodes/browsers"' >> /start.sh && \
86
- echo 'if [ -d "$PLAYWRIGHT_DIR" ]; then' >> /start.sh && \
87
- echo ' for dir in $PLAYWRIGHT_DIR/chromium-*; do' >> /start.sh && \
88
- echo ' mkdir -p "$dir/chrome-linux"' >> /start.sh && \
89
- echo ' ln -sf /usr/bin/chromium-browser "$dir/chrome-linux/chrome" 2>/dev/null || true' >> /start.sh && \
90
- echo ' done' >> /start.sh && \
91
- echo 'fi' >> /start.sh && \
92
- echo '' >> /start.sh && \
93
- echo 'exec n8n start' >> /start.sh && \
94
- chmod +x /start.sh
95
 
96
  CMD ["/start.sh"]
 
3
  USER root
4
 
5
  # ============================================
6
+ # 1. OUTILS SYSTÈME
 
 
 
 
 
 
 
 
 
 
 
 
 
7
  # ============================================
8
  RUN apk add --no-cache \
9
+ ca-certificates openssl bind-tools curl wget bash \
10
  git python3 py3-pip make g++ build-base \
11
  cairo-dev pango-dev jpeg-dev giflib-dev \
12
+ postgresql-client ffmpeg yt-dlp \
13
+ font-noto font-noto-cjk ttf-freefont ttf-dejavu ttf-liberation
 
 
 
 
 
 
 
 
 
 
 
 
 
 
14
 
15
  # ============================================
16
+ # 2. CHROMIUM
17
  # ============================================
18
  RUN apk add --no-cache \
19
  chromium \
20
  chromium-chromedriver \
21
+ nss freetype harfbuzz font-noto-emoji
 
 
 
 
22
 
23
  # ============================================
24
+ # 3. N8N + PLAYWRIGHT
25
  # ============================================
26
  RUN npm install -g n8n@latest
27
 
28
+ # Installer playwright-core globalement
29
+ RUN npm install -g playwright-core
30
+
31
  # ============================================
32
+ # 4. SERVEUR PDF
33
+ # ============================================
34
+ WORKDIR /app
35
+ COPY pdf-server.js /app/pdf-server.js
36
+ RUN npm init -y && npm install express playwright-core
37
+
38
+ # ============================================
39
+ # 5. VARIABLES
40
  # ============================================
41
  ENV PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=true
42
  ENV PUPPETEER_EXECUTABLE_PATH=/usr/bin/chromium-browser
 
43
  ENV PLAYWRIGHT_CHROMIUM_EXECUTABLE_PATH=/usr/bin/chromium-browser
44
  ENV PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1
 
45
  ENV N8N_USER_FOLDER=/data/.n8n
46
  ENV N8N_COMMUNITY_PACKAGES_ENABLED=true
47
  ENV N8N_REINSTALL_MISSING_PACKAGES=true
48
 
49
  # ============================================
50
+ # 6. PERMISSIONS
51
  # ============================================
 
52
  RUN mkdir -p /data/.n8n && chmod -R 777 /data/.n8n
53
 
54
  # ============================================
55
+ # 7. SCRIPT DE DÉMARRAGE
56
  # ============================================
57
+ COPY start.sh /start.sh
58
+ RUN chmod +x /start.sh
 
 
 
 
 
 
 
 
 
 
 
 
 
59
 
60
  CMD ["/start.sh"]