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 |