libabaasdasd21312asda commited on
Commit
837321a
·
verified ·
1 Parent(s): 2710d60

Update Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +16 -12
Dockerfile CHANGED
@@ -1,16 +1,20 @@
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://huggingface.co/spaces/
11
  ARG POSTGRESDB_PORT=5432
12
 
13
  # 设置基本环境变量
 
14
  ENV WEBHOOK_URL=${WEBHOOK_URL} \
15
  N8N_HOST=0.0.0.0 \
16
  N8N_PORT=7860 \
@@ -32,7 +36,8 @@ ENV WEBHOOK_URL=${WEBHOOK_URL} \
32
  # 添加日志级别
33
  N8N_LOG_LEVEL=info
34
 
35
- # 安装系统依赖
 
36
  RUN apt-get update && apt-get install -y --no-install-recommends \
37
  curl \
38
  unzip \
@@ -65,20 +70,20 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
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
  WORKDIR /home/pn/n8n
80
 
81
- # 复制启动脚本并创建数据目录
82
  COPY --chown=pn:pn run.sh ./run.sh
83
  COPY --chown=pn:pn config/n8n_env.sh ./config/n8n_env.sh
84
  RUN chmod +x ./run.sh \
@@ -86,15 +91,14 @@ RUN chmod +x ./run.sh \
86
  && chown -R pn:pn /home/pn/.n8n \
87
  && chown -R pn:pn /home/pn/n8n
88
 
89
- # 暴露端口
90
  EXPOSE 7860
91
 
92
- # 切换到非 root 用户
93
  USER pn
94
 
95
- # 设置数据卷
96
  VOLUME ["/home/pn/.n8n"]
97
 
98
- # 启动命令
99
  CMD ["./run.sh"]
100
-
 
1
+ # 使用 PostgreSQL 作为基础镜像 (这个基础镜像包含了 Python 和 Node.js)
2
  FROM nikolaik/python-nodejs:python3.12-nodejs20
3
 
4
  # 添加维护者信息
5
  LABEL maintainer="ai来事 <https://www.youtube.com/@all.ai.>"
6
 
7
+ # 使用 ARG CACHEBUST 来在需要时强制刷新构建缓存
8
  ARG CACHEBUST=222
9
 
10
  # 设置构建参数,提供默认值
11
+ # 注意:这些 ARG 变量仅在构建时可用,如果你需要在运行时使用它们,请通过 ENV 声明。
12
+ # WEBHOOK_URL 和 POSTGRESDB_PORT 已经通过 ENV 声明,所以这里主要是为了默认值或构建时的某些逻辑。
13
  ARG WEBHOOK_URL=https://huggingface.co/spaces/
14
  ARG POSTGRESDB_PORT=5432
15
 
16
  # 设置基本环境变量
17
+ # 这些 ENV 变量将存在于最终运行的容器中。
18
  ENV WEBHOOK_URL=${WEBHOOK_URL} \
19
  N8N_HOST=0.0.0.0 \
20
  N8N_PORT=7860 \
 
36
  # 添加日志级别
37
  N8N_LOG_LEVEL=info
38
 
39
+ # 安装系统依赖、Qdrant、Python依赖和n8n本身
40
+ # 这个 RUN 命令在 root 用户下执行,以确保有足够的权限安装软件和创建目录。
41
  RUN apt-get update && apt-get install -y --no-install-recommends \
42
  curl \
43
  unzip \
 
70
  && mkdir -p /home/pn/.n8n/qdrant/snapshots \
71
  && chown -R pn:pn /home/pn/.n8n/qdrant \
72
  && chmod -R 755 /home/pn/.n8n/qdrant \
73
+ # 清理 APT 缓存,减少镜像大小
74
  && apt-get clean \
75
  && rm -rf /var/lib/apt/lists/* \
76
+ # 创建 Python 虚拟环境并安装 Python 依赖
77
  && python3 -m venv $VIRTUAL_ENV \
78
  && $VIRTUAL_ENV/bin/pip install --no-cache-dir --upgrade pip requests yt-dlp \
79
+ # 全局安装 n8n 和 pnpm
80
  && npm install -g n8n@latest pnpm \
81
  && npm cache clean --force
82
 
83
+ # 创建工作目录,并确保所有权属于 pn 用户
84
  WORKDIR /home/pn/n8n
85
 
86
+ # 复制启动脚本和 n8n 配置文件,设置执行权限和所有权
87
  COPY --chown=pn:pn run.sh ./run.sh
88
  COPY --chown=pn:pn config/n8n_env.sh ./config/n8n_env.sh
89
  RUN chmod +x ./run.sh \
 
91
  && chown -R pn:pn /home/pn/.n8n \
92
  && chown -R pn:pn /home/pn/n8n
93
 
94
+ # 暴露 n8n 服务将监听的端口
95
  EXPOSE 7860
96
 
97
+ # 切换到非 root 用户,提高安全性
98
  USER pn
99
 
100
+ # 设置数据卷,用于持久化 n8n 的用户数据
101
  VOLUME ["/home/pn/.n8n"]
102
 
103
+ # 定义容器启动时执行的命令
104
  CMD ["./run.sh"]