File size: 2,585 Bytes
fa12237 223cfa0 c7dd3ba 51f195f 11713e2 bb4e756 da931f7 2c268c6 ae4b824 223cfa0 11713e2 51f195f c7dd3ba da931f7 34964bb 51f195f dfb1eda da931f7 dfb1eda da931f7 dfb1eda 0ac823c 11713e2 0ac823c 11713e2 c160bce 0ac823c 11713e2 c7dd3ba 0ac823c da931f7 11713e2 0ac823c 11713e2 51f195f |
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 |
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
# # --- 新增内容开始 ---
# # 安装 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
# Install n8n globally
RUN npm install -g n8n@1.104.2
# Create necessary directories
RUN mkdir -p $DATABASE_PATH $CONFIG_PATH $WORKFLOWS_PATH $LOGS_PATH \
&& chmod -R 777 $BASE_PATH
# 修改目录权限为 node 用户可读写
RUN chown -R node:node $BASE_PATH
# Fix write permission for /data
RUN mkdir -p /data && chmod -R 777 /data
# Set working directory
WORKDIR /data
# Start n8n
CMD ["n8n", "start"] |