File size: 2,780 Bytes
565be98 223cfa0 c7dd3ba 2750c69 11713e2 bb4e756 2750c69 ae4b824 223cfa0 11713e2 2750c69 c7dd3ba 2750c69 1ea19ed 2750c69 0ac823c 11713e2 0ac823c 5eb1e5f 1ea19ed 5eb1e5f c7dd3ba 5eb1e5f 2750c69 5eb1e5f 11713e2 0ac823c 5eb1e5f 1ea19ed 5eb1e5f | 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 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 | FROM node:24-alpine
# Set user to root for installation
USER root
# Arguments that can be passed at build time
ARG N8N_PATH=/usr/local/lib/node_modules/n8n
ARG BASE_PATH=/root/.n8n
ARG DATABASE_PATH=$BASE_PATH/database
ARG CONFIG_PATH=$BASE_PATH/config
ARG WORKFLOWS_PATH=$BASE_PATH/workflows
ARG LOGS_PATH=$BASE_PATH/logs
ARG N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=$N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS
ARG N8N_REINSTALL_MISSING_PACKAGES=$N8N_REINSTALL_MISSING_PACKAGES
ARG N8N_RUNNERS_ENABLED=true
ARG allowVulnerableTags=true
ARG N8N_HOST=$N8N_HOST
ARG N8N_PORT=$N8N_PORT
ARG N8N_PROTOCOL=https
ARG N8N_EDITOR_BASE_URL=$N8N_EDITOR_BASE_URL
ARG WEBHOOK_URL=$WEBHOOK_URL
ARG GENERIC_TIMEZONE=$GENERIC_TIMEZONE
ARG TZ=$TZ
ARG N8N_ENCRYPTION_KEY=$N8N_ENCRYPTION_KEY
ARG DB_TYPE=$DB_TYPE
ARG DB_POSTGRESDB_SCHEMA=$DB_POSTGRESDB_SCHEMA
ARG DB_POSTGRESDB_HOST=$DB_POSTGRESDB_HOST
ARG DB_POSTGRESDB_DATABASE=$DB_POSTGRESDB_DATABASE
ARG DB_POSTGRESDB_PORT=$DB_POSTGRESDB_PORT
ARG DB_POSTGRESDB_USER=$DB_POSTGRESDB_USER
ARG DB_POSTGRESDB_PASSWORD=$DB_POSTGRESDB_PASSWORD
# Install system dependencies
# --- 修改内容 ---: 在列表中添加了 unzip 和 libaio 用于安装 Oracle Client
RUN apk add --no-cache \
git \
python3 \
py3-pip \
make \
g++ \
build-base \
cairo-dev \
pango-dev \
chromium \
postgresql-client \
ffmpeg \
yt-dlp \
openssl \
busybox-extras \
curl \
bash \
unzip \
libaio \
ca-certificates && \
update-ca-certificates
# # --- 新增内容开始 ---
# # 安装 Oracle Instant Client for Alpine Linux
# RUN curl -o /tmp/instantclient.zip https://download.oracle.com/otn_software/linux/instantclient/2112000/instantclient-basic-linux.x64-21.12.0.0.0dbru.zip \
# && mkdir -p /opt/oracle \
# && unzip /tmp/instantclient.zip -d /opt/oracle \
# && rm /tmp/instantclient.zip
# # 设置 Oracle 相关的环境变量
# ENV ORACLE_HOME=/opt/oracle/instantclient_21_12
# ENV LD_LIBRARY_PATH=$ORACLE_HOME
# # 使用 pip 安装 cx_Oracle
# RUN pip install cx_Oracle==8.3.0
# # --- 新增内容结束 ---
# Set environment variables
ENV PUPPETEER_SKIP_DOWNLOAD=true
ENV PUPPETEER_EXECUTABLE_PATH=/usr/bin/chromium-browser
# 安装最新版 n8n
RUN npm install -g n8n@latest
# 创建目录并赋权
RUN mkdir -p $DATABASE_PATH $CONFIG_PATH $WORKFLOWS_PATH $LOGS_PATH \
&& chmod -R 777 $BASE_PATH \
&& chown -R node:node $BASE_PATH
RUN mkdir -p /data && chmod -R 777 /data
# 设置 n8n 使用 /data 作为工作与配置目录
ENV N8N_USER_FOLDER=/data
WORKDIR /data
# HF Spaces 或自定义端口
ENV N8N_PORT=7860
ENV N8N_LISTEN_ADDRESS=0.0.0.0
EXPOSE 7860
# 延迟启动以确保数据库可用(可根据需求调整时间)
CMD ["sh", "-c", "sleep 10 && n8n"] |