File size: 3,014 Bytes
a14a883
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
8bf38ae
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
a14a883
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3bf6c3b
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
# n8n Local Testing & Debug Log

## 1. 测试环境 (Test Environment)

- **OS**: macOS
- **Node**: v22.17.0
- **n8n Version**: 2.1.2 (via npx)

## 2. 测试目标 (Objective)

验证 n8n 是否能在非默认端口 **7860** (Hugging Face Spaces 标准端口) 正常启动。

## 3. 测试过程 (Testing Process)

### 3.1 初始尝试

直接使用 `npx n8n start --port=7860` 启动。

**结果**: 失败。
**错误日志**:

```text
n8n's port 5678 is already in use.
```

_分析_: n8n 即使指定了 port,有时仍会检测默认端口或存在残留进程。

### 3.2 端口冲突排查

执行 `lsof -i :5678 -i :7860` 发现:

- 7860 端口被旧的 Python (Gradio) 进程占用。
- 5678 端口被之前的 n8n node 实例占用。

### 3.3 清理进程

执行以下命令释放端口:

```bash
kill -9 <Python_PID>  # 清理旧 Gradio
kill -9 <Node_PID>    # 清理旧 n8n 实例
```

### 3.4 最终验证

使用环境变量方式强制指定端口并启动:

## 5. HF Spaces 部署故障排查 (HF Spaces Troubleshooting)

### 5.1 报错:apk not found

**现象**: 在 HF Spaces 构建时提示 `/bin/sh: apk: not found`**原因**: `n8nio/n8n:latest` 的最新镜像基底是 Debian/Ubuntu,而非 Alpine。

### 5.2 解决方案:切换至 Node 基础镜像并手动安装 n8n

**修复方式**: 放弃使用 `n8nio/n8n` 官方镜像作为基底,改用标准的 `node:22-alpine`。在这种环境下,`apk` 是可用的,可以稳定安装 Python 3 和 n8n。
**本地验证结果**:

```bash
# 构建
docker build -t n8n-verified .

# 验证二进制版本
docker run --rm --entrypoint sh n8n-verified -c "n8n --version && python3 --version"
# 输出:
# 2.1.2
# Python 3.12.12
```

**结论**: 最终方案在本地 Docker 环境下完美运行,已推送到 HF Spaces 等待自动构建。

```bash
export N8N_PORT=7860 && npx n8n start
```

**结果**: **成功 (SUCCESS)**
**成功日志**:

```text
Initializing n8n process
n8n ready on ::, port 7860
n8n Task Broker ready on 127.0.0.1, port 5679
Registered runner "JS Task Runner"
```

## 4. 结论 (Conclusion)

- n8n 地支持通过 `N8N_PORT` 环境变量修改监听端口。
- 端口 7860 在本地及 HF Spaces 环境下均被证明可行。
- 核心配置文件 `Dockerfile``README.md` 已根据此验证结果完成适配。

## 5. HF Spaces 部署故障排查 (HF Spaces Troubleshooting)

### 5.1 报错:apk not found

**现象**: 在 HF Spaces 构建时提示 `/bin/sh: apk: not found`**原因**: `n8nio/n8n:latest` 的最新镜像基底是 Debian/Ubuntu,而非 Alpine。
**修复**: 最终方案切换至官方 `n8nio/n8n:latest` (Debian) 并使用 `apt-get`### 5.2 进一步简化:大道至简版

**修复方式**: 直接使用 `FROM n8nio/n8n:latest`**验证结果**: `n8nio/n8n:latest-alpine` 标签不存在(导致 404),必须使用 `latest` 或具体版本号。

```dockerfile
FROM n8nio/n8n:latest
USER root
RUN apt-get update && apt-get install -y python3
USER node
```