kotaemon Docker 部署时 lite 与 full 镜像怎么选?
2026/9/13 21:32:09 网站建设 项目流程

kotaemon Docker 部署时 lite 与 full 镜像怎么选?

【免费下载链接】kotaemonAn open-source RAG-based tool for chatting with your documents.项目地址: https://gitcode.com/GitHub_Trending/kot/kotaemon

用 Docker 部署 kotaemon(RAG 文档问答 Web 应用)时,第一步就要在main-litemain-full两个镜像 tag 之间做选择。两者的差别不在功能开关,而在内置的文档解析能力——这决定了你的服务能摄取哪些文件类型。本文基于项目 README.md 与 Dockerfile 给出判断依据、部署命令和验证方式。

按要处理的文件类型定镜像

README 对两个版本的说明是一句话概括:full版本额外安装了unstructured包,可支持更多文件类型(.doc.docx等),代价是镜像体积更大;"For most users, theliteimage should work well in most cases"。

选型的直接依据是 README「System requirements」中的一条约束:需要处理.pdf.html.mhtml.xlsx以外的文件类型时,必须安装 Unstructured。lite 镜像不带它,full 镜像预装了unstructured[all-docs]。由此可以得出判断表:

你的文档范围推荐镜像
只处理.pdf.html.mhtml.xlsxmain-lite
需要处理.doc.docx等 Office 文件main-full
想用内置 Ollama 跑本地/私有 RAGmain-ollama(基于 full 构建)

除非确实有 Office 文档要摄取,否则不必为更大的镜像体积买单,选main-lite

两个镜像的具体差异来自哪里

Dockerfile 中full阶段直接构建在lite阶段之上(FROM lite AS full),即 full = lite + 下列追加内容:

追加内容作用
tesseract-ocrtesseract-ocr-jpnlibreofficeffmpeglibmagic-dev文档解析所需的系统级依赖(OCR、Office 文件转换等)
torchtorchvisiontorchaudio(CPU 版本 wheel)unstructured 的运行依赖
libs/kotaemon[adv]kotaemon 的可选依赖集合(elasticsearch、fastembed、llama-cpp-python、milvus/qdrant 等,定义见 libs/kotaemon/pyproject.toml)
unstructured[all-docs]支持.doc/.docx等更多文件类型的解析
libs/kotaemon[docling]Docling 文档解析选项
libs/kotaemon[lightrag],并设置环境变量USE_LIGHTRAG=true内置 LightRAG 检索变体

lite阶段本身包含:python:3.11-slim基础镜像、poppler-utils等 PDF 工具、通过uv sync安装的应用核心依赖、PDF 浏览器所需的 pdfjs 资源,以及graphrag<=0.3.6(仅amd64架构,限制见文末)。

另外注意:所有镜像的入口都是 launch.sh,它会按GRADIO_SERVER_NAME/GRADIO_SERVER_PORT启动 Web 应用;镜像仓库的.env.example会被复制为容器内的.env(见下文验证部分)。

运行 lite 镜像(默认路径)

README 给出的完整命令以full版本为例,lite版本说明为「change image name to」。下面把 lite 命令展开写全,可直接执行:

docker run \ -e GRADIO_SERVER_NAME=0.0.0.0 \ -e GRADIO_SERVER_PORT=7860 \ -v ./ktem_app_data:/app/ktem_app_data \ -p 7860:7860 -it --rm \ ghcr.io/cinnamon/kotaemon:main-lite

各部分的作用:

  • -e GRADIO_SERVER_NAME=0.0.0.0-e GRADIO_SERVER_PORT=7860:容器内服务监听地址与端口;
  • -v ./ktem_app_data:/app/ktem_app_data:把本地./ktem_app_data目录挂载为应用数据目录。README 说明应用数据默认全部存放在该目录,备份或拷贝它即可把安装迁移到新机器;
  • -p 7860:7860:端口映射到宿主机;
  • -it --rm:前台交互运行,容器停止后容器本身被移除,数据依靠挂载卷保留。

需要 full 镜像时,只替换最后一行的 tag:

ghcr.io/cinnamon/kotaemon:main-full

可选分支:arm64 平台与 Ollama 镜像

arm64:项目目前支持和测试两个平台linux/amd64linux/arm64(适用于较新的 Mac),通过--platform指定。lite 镜像在 arm64 上的完整命令:

docker run \ -e GRADIO_SERVER_NAME=0.0.0.0 \ -e GRADIO_SERVER_PORT=7860 \ -v ./ktem_app_data:/app/ktem_app_data \ -p 7860:7860 -it --rm \ --platform linux/arm64 \ ghcr.io/cinnamon/kotaemon:main-lite

内置 Ollama(本地/私有 RAG):README 建议做 local / private RAG 时改用main-ollama镜像(只改镜像名)。按 Dockerfile,该镜像基于full阶段构建,额外安装了 Ollama,并预拉取了nomic-embed-textembedding 模型。

验证部署结果

容器启动后,打开http://localhost:7860/访问 WebUI——README 以能访问该地址作为「everything is set up correctly」的判断标准。应用默认用户名和密码均为admin(用户指南建议在首次登录后立即修改该凭据)。

首次启动后还有两件事值得确认:

  1. 数据已写入挂载的./ktem_app_data目录,后续重启不会丢失配置与索引。
  2. .env只在首次运行时用于初始化模型配置(README 说明该文件「will only be used to populate the db once upon the first run」),之后的运行以 UI 中设置的模型为准,不会再读取它。若你希望通过.env预置模型,需要在首次启动前完成配置。

选镜像时的两条限制

  • graphrag依赖仅 amd64 安装:Dockerfile 中对graphrag<=0.3.6future的安装包在if [ "$TARGETARCH" = "amd64" ]条件里。在linux/arm64上使用镜像时,镜像内不包含这两项 pip 依赖。
  • PaddleOCR 变体是独立的 GPU 镜像:Dockerfile 的paddle阶段基于full构建并安装paddlepaddle-gpu(CUDA),属于独立 tag,不在 lite/full 的常规选择范围内,需要 GPU 才能使用。

验证通过之后,按 README 的后续步骤在 WebUI 的ResourcesLLMs and Embeddings中检查api_key与默认模型是否设置正确,即可开始导入文档并提问。

【免费下载链接】kotaemonAn open-source RAG-based tool for chatting with your documents.项目地址: https://gitcode.com/GitHub_Trending/kot/kotaemon

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询