|
|
a80dc1e69d
|
修复容器健康检查失败的核心问题:IPv6 vs IPv4 和权限
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Failing after 3m47s
问题诊断(本地运行镜像验证):
1. 服务实际已启动在 3000 端口
2. 从宿主机访问健康检查 ✅ 成功
3. 容器内部 wget localhost:3000 ❌ 失败 (Connection refused)
4. 健康检查尝试连接 [::1]:3000 (IPv6),但 Fiber 只监听 IPv4
根本原因:
- wget localhost 优先解析为 IPv6 地址 [::1]
- Fiber 默认监听 0.0.0.0:3000 (仅 IPv4)
- Docker 健康检查失败 → 容器标记 unhealthy → Worker 无法启动
修复内容:
1. Dockerfile.api 健康检查: localhost → 127.0.0.1 (强制 IPv4)
2. docker-compose.prod.yml 健康检查: 同步修改
3. Dockerfile.api: 创建 logs 目录并设置 appuser 权限
4. cmd/api/main.go: OpenAPI 文档路径改为 logs/openapi.yaml
|
2026-01-20 11:50:28 +08:00 |
|
|
|
286defb063
|
修复 API 容器健康检查失败:统一端口配置并添加数据库环境变量
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Failing after 3m23s
问题1: 端口不一致
- Dockerfile.api 中 EXPOSE 和健康检查使用 8088
- config.yaml 中 API 实际监听 3000
- 健康检查失败导致容器 unhealthy
问题2: 缺少数据库环境变量
- entrypoint-api.sh 需要 DB_HOST、DB_USER 等环境变量执行迁移
- docker-compose.prod.yml 没有定义这些变量
- 容器启动脚本立即退出
修复:
- Dockerfile.api: EXPOSE 和健康检查改为 3000
- docker-compose.prod.yml: 添加完整的数据库环境变量
|
2026-01-20 11:33:26 +08:00 |
|
|
|
0584a474cc
|
修复部署配置:使用 config.yaml 默认配置和外部服务
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Has been cancelled
- 移除 docker-compose 中的 postgres 和 redis 服务(使用外部服务)
- 移除不必要的环境变量(DB_HOST 等)
- 修正服务端口:8088 → 3000(与 config.yaml 一致)
- 修正健康检查:curl → wget(与 Dockerfile 一致)
- 工作流自动复制 configs 目录和创建 logs 目录
- 使用默认 config.yaml(连接到 cxd.whcxd.cn 数据库)
|
2026-01-20 09:57:38 +08:00 |
|
|
|
589197e284
|
添加 Docker 和 CI/CD 配置(无 SSH 方案)
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Failing after 0s
|
2026-01-19 14:56:40 +08:00 |
|