fix(honcho): 容器端口必须用容器内端口,不能用 host 映射端口

vm61 honcho-api 一直 unhealthy + deriver 反复重启,根因是 stack.yml 把
宿主机映射端口 (HONCHO_DB_PORT=25432) 当成了容器间互访端口:
- DB_CONNECTION_URI 里 database:${HONCHO_DB_PORT} 应为 database:5432
- healthcheck URL localhost:18000 应为 localhost:8000
HONCHO_API_PORT/DB_PORT/REDIS_PORT 仅用于宿主机 ports 映射段,
容器之间互访必须硬编码容器内端口 (5432/6379/8000)。

- 改 stack.yml api + deriver 段 DB_CONNECTION_URI 端口为 5432
- 改 stack.yml api 段 healthcheck URL 为 localhost:8000
- readme 关键陷阱加第 6 条:"容器端口 vs 宿主机端口不可混用"
- vm61 4 honcho 容器全部 healthy,deriver queue processor 已正常运行
This commit is contained in:
2026-06-19 18:39:17 +08:00
parent 80d485605b
commit c157e9a418
2 changed files with 17 additions and 3 deletions
+14
View File
@@ -253,6 +253,20 @@ Honcho 是 **AGPL-3.0**,对网络服务部署有"用户可获取源码"的要
honcho-self-hosted 相对官方 compose 的一个改进:**移除了**`trust` 认证(官方默认的 dev 用法),改用强密码 + scram-sha-256。生产环境务必保留这个设置。
### 6. 容器端口 vs 宿主机端口不可混用
**容器之间互访必须用容器内端口(5432/6379/8000**,不能用宿主机映射端口(如 `HONCHO_DB_PORT=25432`)。错误示例:
```yaml
# ❌ 错:${HONCHO_DB_PORT} 是宿主机端口 25432,容器内根本没监听这个
DB_CONNECTION_URI=postgresql+psycopg://honcho:pw@database:${HONCHO_DB_PORT}/honcho
# ✅ 对:硬编码容器内端口 5432
DB_CONNECTION_URI=postgresql+psycopg://honcho:pw@database:5432/honcho
```
同样 healthcheck 也用容器内端口 `localhost:8000`**不是** `localhost:18000`(宿主映射端口)。
## 故障排查
| 症状 | 排查命令 |