File size: 1,368 Bytes
17de91b
2e5f6b6
397cf0a
 
17de91b
397cf0a
17de91b
00ea884
 
 
 
 
 
 
ca36c6b
cda93c5
17de91b
397cf0a
 
 
 
00ea884
 
 
397cf0a
00ea884
 
 
 
 
c7fa6f3
 
 
397cf0a
00ea884
17de91b
00ea884
17de91b
4bfb371
397cf0a
17de91b
397cf0a
 
 
17de91b
 
 
 
 
 
 
 
 
 
397cf0a
17de91b
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
# 使用 Node.js 20
FROM node:20-alpine

# --- 環境變數設定 ---
ENV N8N_USER_FOLDER=/home/node/.n8n
ENV N8N_DISABLE_PRODUCTION_MAIN_PROCESS_BETA=true
ENV N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true
ENV NODE_FUNCTION_ALLOW_EXTERNAL=puppeteer,playwright
ENV DB_TYPE=postgresdb
ENV DB_POSTGRESDB_HOST=""
ENV DB_POSTGRESDB_PORT=5432
ENV DB_POSTGRESDB_DATABASE=postgres
ENV DB_POSTGRESDB_USER=postgres
ENV DB_POSTGRESDB_PASSWORD=""
ENV DB_POSTGRESDB_SSL=true


# --- 安裝系統依賴 ---
USER root
RUN apk add --no-cache \
    git \
    procps-ng \
    udev \
    ttf-freefont \
    chromium \
    nss \
    freetype \
    harfbuzz \
    ca-certificates \
    dbus-glib \
    fontconfig \
    ffmpeg \
    yt-dlp

# --- 安裝 n8n 和 Playwright 套件 ---
RUN npm install -g n8n@latest playwright puppeteer --omit=dev

# --- 安裝 Playwright 的瀏覽器 ---
RUN npx playwright install

# --- 切換到 node 用戶,設定工作目錄 ---
USER node
WORKDIR /home/node

# --- 最終修正:使用 Wrapper Script ---
# 1. 將我們的啟動腳本複製到容器中
COPY --chown=node:node entrypoint.sh .

# 2. 賦予它執行的權限
RUN chmod +x ./entrypoint.sh

# 3. 將這個腳本設定為容器的入口點。
# 這樣可以 100% 保證我們的 IPv4 參數會被執行,平台無法再覆蓋它。
ENTRYPOINT ["./entrypoint.sh"]

# 開放端口
EXPOSE 5678