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