n8npg / Dockerfile
innofacisteven's picture
Upload 2 files
3d1eab5 verified
raw
history blame contribute delete
963 Bytes
# --- 1. 使用 Node.js 20 作為基礎映像 ---
FROM node:20-alpine
# --- 2. 以 root 權限安裝系統和全域套件 ---
USER root
RUN apk add --no-cache \
git \
python3 \
py3-pip \
make \
g++ \
build-base \
libc6-compat
# 全域安裝 n8n
RUN npm install -g n8n
# --- 3. 建立資料夾並修正權限 ---
# 在修改權限前,先建立 /data 和 /data/.n8n 資料夾。
# -p 參數可以確保即使父目錄不存在也能成功建立。
#RUN mkdir -p /data
RUN mkdir -p /data/.n8n
# 將 /data 資料夾的擁有權交給 'node' 使用者
RUN chown -R node:node /data
# 確保 /data/.n8n 目錄權限為 700,檔案(如 config)權限為 600
RUN chmod 700 /data/.n8n
# 清理可能存在的無效 config 檔案
RUN rm -f /data/.n8n/config
# --- 4. 切換到已存在的 'node' 使用者 ---
USER node
# --- 5. 設定工作目錄並執行應用程式 ---
WORKDIR /data
EXPOSE 7860
# 啟動 n8nk
CMD ["n8n", "start"]