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
+3 -3
View File
@@ -35,7 +35,7 @@ services:
- "${HONCHO_API_PORT:-8000}:8000"
environment:
- TZ=Asia/Shanghai
- DB_CONNECTION_URI=postgresql+psycopg://${HONCHO_DB_USER}:${HONCHO_DB_PASSWORD}@database:${HONCHO_DB_PORT}/${HONCHO_DB_NAME}
- DB_CONNECTION_URI=postgresql+psycopg://${HONCHO_DB_USER}:${HONCHO_DB_PASSWORD}@database:5432/${HONCHO_DB_NAME}
- CACHE_URL=redis://redis:${HONCHO_REDIS_PORT}/0?suppress=true
- CACHE_ENABLED=true
- LOG_LEVEL=${HONCHO_LOG_LEVEL:-INFO}
@@ -64,7 +64,7 @@ services:
- CMD
- /app/.venv/bin/python
- -c
- "import urllib.request; urllib.request.urlopen('http://localhost:18000/health', timeout=2).read()"
- "import urllib.request; urllib.request.urlopen('http://localhost:8000/health', timeout=2).read()"
interval: 10s
timeout: 5s
retries: 10
@@ -88,7 +88,7 @@ services:
condition: service_healthy
environment:
- TZ=Asia/Shanghai
- DB_CONNECTION_URI=postgresql+psycopg://${HONCHO_DB_USER}:${HONCHO_DB_PASSWORD}@database:${HONCHO_DB_PORT}/${HONCHO_DB_NAME}
- DB_CONNECTION_URI=postgresql+psycopg://${HONCHO_DB_USER}:${HONCHO_DB_PASSWORD}@database:5432/${HONCHO_DB_NAME}
- CACHE_URL=redis://redis:${HONCHO_REDIS_PORT}/0?suppress=true
- CACHE_ENABLED=true
- NAMESPACE=${HONCHO_NAMESPACE:-honcho}