forked from DevOps/deploy.stack
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:
@@ -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`(宿主映射端口)。
|
||||
|
||||
## 故障排查
|
||||
|
||||
| 症状 | 排查命令 |
|
||||
|
||||
Reference in New Issue
Block a user