Spaces:
13ze
/
Runtime error

13ze commited on
Commit
204d6b0
·
verified ·
1 Parent(s): 0abcf01

Update Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +17 -23
Dockerfile CHANGED
@@ -1,21 +1,22 @@
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 \
18
- GENERIC_TIMEZONE=Asia/Shanghai \
19
  N8N_METRICS=true \
20
  QUEUE_HEALTH_CHECK_ACTIVE=true \
21
  N8N_PAYLOAD_SIZE_MAX=256 \
@@ -23,16 +24,13 @@ ENV WEBHOOK_URL=${WEBHOOK_URL} \
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 \
@@ -51,31 +49,27 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
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 \
@@ -86,10 +80,10 @@ RUN --mount=type=secret,id=POSTGRES_USER,mode=0444,required=true \
86
  echo "export DB_POSTGRESDB_DATABASE=$(cat /run/secrets/POSTGRES_DB)" >> /home/pn/.env && \
87
  chown pn:pn /home/pn/.env
88
 
89
- # 创建工作目录
90
  WORKDIR /home/pn/n8n
91
 
92
- # 复制启动脚本并创建数据目录
93
  COPY --chown=pn:pn run.sh ./run.sh
94
  COPY --chown=pn:pn config/n8n_env.sh ./config/n8n_env.sh
95
  RUN chmod +x ./run.sh \
@@ -97,14 +91,14 @@ RUN chmod +x ./run.sh \
97
  && chown -R pn:pn /home/pn/.n8n \
98
  && chown -R pn:pn /home/pn/n8n
99
 
100
- # 暴露端口
101
  EXPOSE 7860
102
 
103
- # 切换到非 root 用户
104
  USER pn
105
 
106
- # 设置数据卷
107
  VOLUME ["/home/pn/.n8n"]
108
 
109
- # 启动命令
110
  CMD ["./run.sh"]
 
1
+ # Usa uma imagem base com Python e Node.js
2
  FROM nikolaik/python-nodejs:python3.12-nodejs20
3
 
4
+ # Adiciona informações do mantenedor
5
  LABEL maintainer="ai来事 <https://www.youtube.com/@all.ai.>"
6
 
7
+ # Argumento para forçar atualização de cache
8
  ARG CACHEBUST=222
9
 
10
+ # Define argumentos de build com valores padrão
11
+ ARG WEBHOOK_URL=https://13ze-ain8n.hf.space/
12
  ARG POSTGRESDB_PORT=5432
13
 
14
+ # Define variáveis de ambiente
15
  ENV WEBHOOK_URL=${WEBHOOK_URL} \
16
  N8N_HOST=0.0.0.0 \
17
  N8N_PORT=7860 \
18
  N8N_PROTOCOL=https \
19
+ GENERIC_TIMEZONE=America/Sao_Paulo \
20
  N8N_METRICS=true \
21
  QUEUE_HEALTH_CHECK_ACTIVE=true \
22
  N8N_PAYLOAD_SIZE_MAX=256 \
 
24
  DB_POSTGRESDB_PORT=${POSTGRESDB_PORT} \
25
  VIRTUAL_ENV=/home/pn/venv \
26
  PATH="/home/pn/venv/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:$PATH" \
 
27
  QDRANT_HOST=http://localhost \
28
  QDRANT_PORT=6333 \
29
  QDRANT_VERSION=1.12.4 \
 
30
  WAIT_TIMEOUT=30 \
 
31
  N8N_LOG_LEVEL=info
32
 
33
+ # Instala dependências do sistema
34
  RUN apt-get update && apt-get install -y --no-install-recommends \
35
  curl \
36
  unzip \
 
49
  jq \
50
  netcat-openbsd \
51
  redis-server \
52
+ # Define o fuso horário para São Paulo
53
+ && ln -fs /usr/share/zoneinfo/America/Sao_Paulo /etc/localtime \
54
  && dpkg-reconfigure --frontend noninteractive tzdata \
 
55
  && cd /tmp \
56
  && curl -L https://github.com/qdrant/qdrant/releases/download/v${QDRANT_VERSION}/qdrant-x86_64-unknown-linux-gnu.tar.gz -o qdrant.tar.gz \
57
  && tar xvf qdrant.tar.gz \
58
  && mv qdrant /usr/local/bin/ \
59
  && rm qdrant.tar.gz \
 
60
  && mkdir -p /home/pn/.n8n/qdrant/storage \
61
  && mkdir -p /home/pn/.n8n/qdrant/config \
62
  && mkdir -p /home/pn/.n8n/qdrant/snapshots \
63
  && chown -R pn:pn /home/pn/.n8n/qdrant \
64
  && chmod -R 755 /home/pn/.n8n/qdrant \
 
65
  && apt-get clean \
66
  && rm -rf /var/lib/apt/lists/* \
 
67
  && python3 -m venv $VIRTUAL_ENV \
68
  && $VIRTUAL_ENV/bin/pip install --no-cache-dir --upgrade pip requests yt-dlp \
 
69
  && npm install -g n8n@latest pnpm \
70
  && npm cache clean --force
71
 
72
+ # Cria arquivo de variáveis de ambiente usando segredos
73
  RUN --mount=type=secret,id=POSTGRES_USER,mode=0444,required=true \
74
  --mount=type=secret,id=POSTGRES_PASSWORD,mode=0444,required=true \
75
  --mount=type=secret,id=POSTGRES_DB,mode=0444,required=true \
 
80
  echo "export DB_POSTGRESDB_DATABASE=$(cat /run/secrets/POSTGRES_DB)" >> /home/pn/.env && \
81
  chown pn:pn /home/pn/.env
82
 
83
+ # Define diretório de trabalho
84
  WORKDIR /home/pn/n8n
85
 
86
+ # Copia scripts e configurações
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
+ # Expõe a porta usada pelo n8n
95
  EXPOSE 7860
96
 
97
+ # Usa usuário não-root
98
  USER pn
99
 
100
+ # Define o volume de dados
101
  VOLUME ["/home/pn/.n8n"]
102
 
103
+ # Comando de inicialização do container
104
  CMD ["./run.sh"]