首页
/ 解决Cognita项目Docker部署中的容器健康检查问题

解决Cognita项目Docker部署中的容器健康检查问题

2025-06-16 10:49:43作者:农烁颖Land

在本地部署Cognita项目时,用户经常遇到容器健康检查失败的问题,特别是infinity和postgres容器。本文将深入分析这些问题的根源,并提供完整的解决方案。

常见问题分析

1. 容器启动超时问题

infinity容器启动需要较长时间加载模型,而Docker Compose默认的健康检查等待时间可能不足。这会导致容器被标记为"unhealthy",但实际上容器仍在初始化过程中。

解决方案:

  • 等待几分钟后再次检查容器状态
  • 使用docker compose ps -a命令确认容器最终状态
  • 适当增加系统资源(特别是RAM)

2. 端口配置不匹配

在早期版本中存在一个配置问题:

  • compose.env文件中INFINITY_URL设置为7998端口
  • 而docker-compose.yaml中实际暴露的是7997端口

这会导致后端服务无法正确连接到infinity服务。

解决方案:

  • 确保compose.env中的INFINITY_URL=http://infinity-server:7997
  • 或更新到最新代码库,该问题已在PR#245中修复

3. 模型配置问题

当出现"没有嵌入模型选项"时,通常是因为:

  • models_config.yaml配置不正确
  • infinity服务未正确加载模型
  • 前后端服务连接问题

完整解决方案

  1. 获取最新代码:
git pull origin main
  1. 准备配置文件:
cp models_config.sample.yaml models_config.yaml
  1. 重建并启动所有服务:
docker compose --env-file compose.env --profile '*' down
docker compose --env-file compose.env --profile '*' up -d --build
  1. 验证服务状态:
  • 检查infinity服务API(端口7997)
  • 确认模型列表可用

高级配置建议

对于models_config.yaml文件,建议配置:

model_providers:
  - provider_name: local-infinity
    api_format: openai
    base_url: http://infinity-server:7997/
    embedding_model_ids:
      - "mixedbread-ai/mxbai-embed-large-v1"
    reranking_model_ids:
      - "mixedbread-ai/mxbai-rerank-xsmall-v1"

系统资源要求

Cognita项目对系统资源要求较高,特别是:

  • 至少16GB RAM(推荐32GB)
  • 足够的磁盘空间存储模型
  • 在Windows系统上,建议为Docker分配至少8GB内存

通过以上步骤和配置,大多数部署问题都能得到解决。如果问题仍然存在,建议检查Docker日志获取更详细的错误信息。

登录后查看全文
热门项目推荐
相关项目推荐