WaterDropjack commited on
Commit
fe683d5
·
verified ·
1 Parent(s): 9bf9e56

Update Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +22 -61
Dockerfile CHANGED
@@ -1,17 +1,13 @@
1
- # 使用 PostgreSQL 作为基础镜像
2
  FROM nikolaik/python-nodejs:python3.12-nodejs20
3
 
4
- # 添加维护者信息
5
  LABEL maintainer="ai来事 <https://www.youtube.com/@all.ai.>"
6
 
7
  ARG CACHEBUST=222
8
-
9
- # 设置构建参数,提供默认值
10
- ARG WEBHOOK_URL=https://你的hf账户名-空间名.hf.space/
11
  ARG POSTGRESDB_PORT=5432
12
 
13
- # 设置基本环境变量
14
- ENV WEBHOOK_URL=${WEBHOOK_URL} \
15
  N8N_HOST=0.0.0.0 \
16
  N8N_PORT=7860 \
17
  N8N_PROTOCOL=https \
@@ -21,92 +17,57 @@ ENV WEBHOOK_URL=${WEBHOOK_URL} \
21
  N8N_PAYLOAD_SIZE_MAX=256 \
22
  DB_TYPE=postgresdb \
23
  DB_POSTGRESDB_PORT=${POSTGRESDB_PORT} \
 
 
 
 
24
  VIRTUAL_ENV=/home/pn/venv \
25
  PATH="/home/pn/venv/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:$PATH" \
26
- # 添加 Qdrant 配置
27
  QDRANT_HOST=http://localhost \
28
  QDRANT_PORT=6333 \
29
  QDRANT_VERSION=1.12.4 \
30
- # 添加超时配置
31
  WAIT_TIMEOUT=30 \
32
- # 添加日志级别
33
  N8N_LOG_LEVEL=info
34
 
35
- # 安装系统依赖
36
  RUN apt-get update && apt-get install -y --no-install-recommends \
37
- curl \
38
- unzip \
39
- gnupg \
40
- build-essential \
41
- sudo \
42
- vim \
43
- git \
44
- procps \
45
- lsof \
46
- net-tools \
47
- ca-certificates \
48
- openssl \
49
- tzdata \
50
- htop \
51
- jq \
52
- netcat-openbsd \
53
- redis-server \
54
  && ln -fs /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
55
  && dpkg-reconfigure --frontend noninteractive tzdata \
56
- # 下载并安装预编译的 Qdrant
57
  && cd /tmp \
58
  && curl -L https://github.com/qdrant/qdrant/releases/download/v${QDRANT_VERSION}/qdrant-x86_64-unknown-linux-gnu.tar.gz -o qdrant.tar.gz \
59
- && tar xvf qdrant.tar.gz \
60
- && mv qdrant /usr/local/bin/ \
61
- && rm qdrant.tar.gz \
62
- # 创建 Qdrant 配置目录和数据目录
63
- && mkdir -p /home/pn/.n8n/qdrant/storage \
64
- && mkdir -p /home/pn/.n8n/qdrant/config \
65
- && mkdir -p /home/pn/.n8n/qdrant/snapshots \
66
- && chown -R pn:pn /home/pn/.n8n/qdrant \
67
- && chmod -R 755 /home/pn/.n8n/qdrant \
68
- # 清理
69
- && apt-get clean \
70
- && rm -rf /var/lib/apt/lists/* \
71
- # 创建虚拟环境并安装 Python 依赖
72
  && python3 -m venv $VIRTUAL_ENV \
73
  && $VIRTUAL_ENV/bin/pip install --no-cache-dir --upgrade pip requests yt-dlp \
74
- # 安装 n8n
75
  && npm install -g n8n@latest pnpm \
76
  && npm cache clean --force
77
 
78
- # 创建环境变量文件
79
- RUN --mount=type=secret,id=POSTGRES_USER,mode=0444,required=true \
80
- --mount=type=secret,id=POSTGRES_PASSWORD,mode=0444,required=true \
81
- --mount=type=secret,id=POSTGRES_DB,mode=0444,required=true \
82
- --mount=type=secret,id=POSTGRESDB_HOST,mode=0444,required=true \
83
- echo "export DB_POSTGRESDB_HOST=$(cat /run/secrets/POSTGRESDB_HOST)" >> /home/pn/.env && \
84
- echo "export DB_POSTGRESDB_USER=$(cat /run/secrets/POSTGRES_USER)" >> /home/pn/.env && \
85
- echo "export DB_POSTGRESDB_PASSWORD=$(cat /run/secrets/POSTGRES_PASSWORD)" >> /home/pn/.env && \
86
- echo "export DB_POSTGRESDB_DATABASE=$(cat /run/secrets/POSTGRES_DB)" >> /home/pn/.env && \
87
- chown pn:pn /home/pn/.env
88
-
89
 
90
- # 创建工作目录
91
  WORKDIR /home/pn/n8n
92
 
93
- # 复制启动脚本并创建数据目录
94
  COPY --chown=pn:pn run.sh ./run.sh
95
  COPY --chown=pn:pn config/n8n_env.sh ./config/n8n_env.sh
96
  RUN chmod +x ./run.sh \
97
  && mkdir -p /home/pn/.n8n \
98
- && chown -R pn:pn /home/pn/.n8n \
99
- && chown -R pn:pn /home/pn/n8n
100
 
101
- # 暴露端口
102
  EXPOSE 7860
103
 
104
  # 切换到非 root 用户
105
  USER pn
106
 
107
- # 设置数据卷
108
  VOLUME ["/home/pn/.n8n"]
109
 
110
  # 启动命令
111
  CMD ["./run.sh"]
112
-
 
1
+ # 使用 Python + Node.js 基础镜像
2
  FROM nikolaik/python-nodejs:python3.12-nodejs20
3
 
 
4
  LABEL maintainer="ai来事 <https://www.youtube.com/@all.ai.>"
5
 
6
  ARG CACHEBUST=222
 
 
 
7
  ARG POSTGRESDB_PORT=5432
8
 
9
+ # 环境变量(可在 HF Settings 里覆盖)
10
+ ENV WEBHOOK_URL=https://你的hf账户名-空间名.hf.space/ \
11
  N8N_HOST=0.0.0.0 \
12
  N8N_PORT=7860 \
13
  N8N_PROTOCOL=https \
 
17
  N8N_PAYLOAD_SIZE_MAX=256 \
18
  DB_TYPE=postgresdb \
19
  DB_POSTGRESDB_PORT=${POSTGRESDB_PORT} \
20
+ DB_POSTGRESDB_HOST=postgres \
21
+ DB_POSTGRESDB_USER=postgres \
22
+ DB_POSTGRESDB_PASSWORD=postgres \
23
+ DB_POSTGRESDB_DATABASE=n8n \
24
  VIRTUAL_ENV=/home/pn/venv \
25
  PATH="/home/pn/venv/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:$PATH" \
 
26
  QDRANT_HOST=http://localhost \
27
  QDRANT_PORT=6333 \
28
  QDRANT_VERSION=1.12.4 \
 
29
  WAIT_TIMEOUT=30 \
 
30
  N8N_LOG_LEVEL=info
31
 
32
+ # 安装系统依赖 + Qdrant + Python + n8n
33
  RUN apt-get update && apt-get install -y --no-install-recommends \
34
+ curl unzip gnupg build-essential sudo vim git procps lsof net-tools \
35
+ ca-certificates openssl tzdata htop jq netcat-openbsd redis-server \
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
36
  && ln -fs /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
37
  && dpkg-reconfigure --frontend noninteractive tzdata \
 
38
  && cd /tmp \
39
  && curl -L https://github.com/qdrant/qdrant/releases/download/v${QDRANT_VERSION}/qdrant-x86_64-unknown-linux-gnu.tar.gz -o qdrant.tar.gz \
40
+ && tar xvf qdrant.tar.gz && mv qdrant /usr/local/bin/ && rm qdrant.tar.gz \
41
+ && mkdir -p /home/pn/.n8n/qdrant/{storage,config,snapshots} \
42
+ && chown -R pn:pn /home/pn/.n8n/qdrant && chmod -R 755 /home/pn/.n8n/qdrant \
43
+ && apt-get clean && rm -rf /var/lib/apt/lists/* \
 
 
 
 
 
 
 
 
 
44
  && python3 -m venv $VIRTUAL_ENV \
45
  && $VIRTUAL_ENV/bin/pip install --no-cache-dir --upgrade pip requests yt-dlp \
 
46
  && npm install -g n8n@latest pnpm \
47
  && npm cache clean --force
48
 
49
+ # 拷贝汉化版 UI(替换默认 editor-ui-dist)
50
+ COPY n8n-i18n-chinese-n8n-1.107.4/editor-ui-dist \
51
+ /usr/local/lib/node_modules/n8n/editor-ui-dist
 
 
 
 
 
 
 
 
52
 
53
+ # 工作目录
54
  WORKDIR /home/pn/n8n
55
 
56
+ # 复制启动脚本
57
  COPY --chown=pn:pn run.sh ./run.sh
58
  COPY --chown=pn:pn config/n8n_env.sh ./config/n8n_env.sh
59
  RUN chmod +x ./run.sh \
60
  && mkdir -p /home/pn/.n8n \
61
+ && chown -R pn:pn /home/pn/.n8n /home/pn/n8n
 
62
 
63
+ # 暴露 HF Spaces 默认端口
64
  EXPOSE 7860
65
 
66
  # 切换到非 root 用户
67
  USER pn
68
 
69
+ # 数据卷
70
  VOLUME ["/home/pn/.n8n"]
71
 
72
  # 启动命令
73
  CMD ["./run.sh"]