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"]