首页
/ Anything LLM 项目 Docker 部署完全指南

Anything LLM 项目 Docker 部署完全指南

2025-07-05 01:45:43作者:江焘钦

前言

Anything LLM 是一个功能强大的语言模型应用平台,通过 Docker 部署可以显著简化安装和配置过程。本文将详细介绍如何使用 Docker 容器化技术部署 Anything LLM,包括环境准备、部署步骤、常见问题解决等内容。

环境准备

硬件要求

  • 内存:至少 2GB RAM(云环境推荐)
  • 存储:最低 10GB 存储空间(根据文档和向量数据量调整)
  • CPU架构:支持 amd64 和 arm64

软件依赖

  • Docker 环境(Docker v18.03+ for Win/Mac,20.10+ for Linux)
  • Node.js 和 Yarn(仅本地构建时需要)

推荐部署方式

1. 拉取最新镜像

docker pull mintplexlabs/anythingllm

2. 运行容器

Linux/MacOS 环境

export STORAGE_LOCATION=$HOME/anythingllm && \
mkdir -p $STORAGE_LOCATION && \
touch "$STORAGE_LOCATION/.env" && \
docker run -d -p 3001:3001 \
--cap-add SYS_ADMIN \
-v ${STORAGE_LOCATION}:/app/server/storage \
-v ${STORAGE_LOCATION}/.env:/app/server/.env \
-e STORAGE_DIR="/app/server/storage" \
mintplexlabs/anythingllm

Windows 环境

$env:STORAGE_LOCATION="$HOME\Documents\anythingllm"; `
If(!(Test-Path $env:STORAGE_LOCATION)) {New-Item $env:STORAGE_LOCATION -ItemType Directory}; `
If(!(Test-Path "$env:STORAGE_LOCATION\.env")) {New-Item "$env:STORAGE_LOCATION\.env" -ItemType File}; `
docker run -d -p 3001:3001 `
--cap-add SYS_ADMIN `
-v "$env:STORAGE_LOCATION`:/app/server/storage" `
-v "$env:STORAGE_LOCATION\.env:/app/server/.env" `
-e STORAGE_DIR="/app/server/storage" `
mintplexlabs/anythingllm;

Docker Compose 方式

version: '3.8'
services:
  anythingllm:
    image: mintplexlabs/anythingllm
    container_name: anythingllm
    ports:
    - "3001:3001"
    cap_add:
      - SYS_ADMIN
    environment:
      - STORAGE_DIR=/app/server/storage
      - JWT_SECRET="随机生成的长字符串(20+字符)"
      - LLM_PROVIDER=ollama
      - OLLAMA_BASE_PATH=http://127.0.0.1:11434
      - OLLAMA_MODEL_PREF=llama2
      - OLLAMA_MODEL_TOKEN_LIMIT=4096
      - EMBEDDING_ENGINE=ollama
      - EMBEDDING_BASE_PATH=http://127.0.0.1:11434
      - EMBEDDING_MODEL_PREF=nomic-embed-text:latest
      - EMBEDDING_MODEL_MAX_CHUNK_LENGTH=8192
      - VECTOR_DB=lancedb
      - WHISPER_PROVIDER=local
      - TTS_PROVIDER=native
      - PASSWORDMINCHAR=8
    volumes:
      - anythingllm_storage:/app/server/storage
    restart: always

volumes:
  anythingllm_storage:
    driver: local
    driver_opts:
      type: none
      o: bind
      device: /本地磁盘路径

访问应用

部署完成后,通过浏览器访问 http://localhost:3001 即可使用 Anything LLM 的全部功能。所有数据将持久化存储在挂载的本地目录中。

高级配置

本地服务连接问题

当容器需要访问宿主机上的服务时(如 Ollama、ChromaDB 等),不能使用 localhost127.0.0.1,而应该使用:

  • Windows/Mac: host.docker.internal
  • Linux: 172.17.0.1 或添加 --add-host=host.docker.internal:host-gateway 参数

远程访问配置

如果 Docker 运行在远程服务器上,需要修改前端 API 基础路径:

# frontend/.env.production
GENERATE_SOURCEMAP=false
VITE_API_BASE="http://<服务器IP>:3001/api"

权限问题

默认 UID 和 GID 设置为 1000,如果宿主机用户 ID 不同,可能导致权限问题,需要在 .env 文件中调整。

常见问题解决

Ollama 连接问题

如果出现 ECONNREFUSED 错误,请检查:

  1. Ollama 服务是否正常运行
  2. 连接地址是否正确使用了 host.docker.internal172.17.0.1
  3. 端口是否正确映射

API 无法访问

确保:

  1. 容器端口 3001 已正确映射
  2. 远程访问时已配置正确的 VITE_API_BASE
  3. 防火墙未阻止端口访问

本地构建(高级用户)

对于需要自定义构建的用户:

  1. 克隆项目仓库
  2. 创建空数据库文件:touch server/storage/anythingllm.db
  3. 复制环境文件:cp docker/.env.example .env
  4. 构建并运行:docker-compose up -d --build

最佳实践

  1. 数据持久化:始终挂载存储卷到本地目录
  2. 环境隔离:为生产环境配置独立的 .env 文件
  3. 资源监控:定期检查存储空间和内存使用情况
  4. 备份策略:定期备份挂载的存储目录

通过以上步骤,您可以轻松部署和管理 Anything LLM 的 Docker 版本,享受容器化带来的便利性和稳定性。