DB-GPT Docker 部署全指南:代理模型与本地 GPU 模型的完整实操手册
2026/9/14 3:52:24 网站建设 项目流程

DB-GPT Docker 部署全指南:代理模型与本地 GPU 模型的完整实操手册

【免费下载链接】DB-GPTopen-source agentic AI data assistant for the next generation of AI + Data products.项目地址: https://gitcode.com/GitHub_Trending/db/DB-GPT

本指南基于 DB-GPT 官方部署文档(docs/docs/installation/docker.md)编写,完整覆盖两大主流的 Docker 部署路径:无需 GPU 的代理模型(Proxy Model)部署与面向本地推理的GPU 本地模型部署。读完本文,你将掌握镜像拉取/构建、容器启动、模型挂载、配置文件编写与数据持久化等全套实战技能,并能结合仓库中的 Dockerfile、构建脚本与示例配置理解每个步骤背后的实现原理。

Docker 镜像准备:拉取与本地构建两种方式

DB-GPT 提供两种镜像准备方式,实际使用时可任选其一

  1. 从官方镜像仓库拉取预构建镜像(镜像名为eosphorosai/dbgpt系列);
  2. 基于仓库源码在本地构建,详见 构建 Docker 镜像。

从仓库源码看,官方提供了多套镜像形态:eosphorosai/dbgpt(GPU 完整版,默认命令为dbgpt start webserver --config configs/dbgpt-proxy-siliconflow.toml,见 docker/base/Dockerfile)、eosphorosai/dbgpt-openai(面向代理模型场景的 CPU 镜像)、以及内置 MySQL 的eosphorosai/dbgpt-allinone(见 docker/allinone/Dockerfile)。

本地构建镜像(进阶)

如需定制镜像内容,可使用仓库根目录下的一键构建脚本 docker/base/build_image.sh,它内置了 5 种安装模式:

模式基础镜像说明
defaultnvidia/cuda:12.4.0-devel-ubuntu22.04CUDA 镜像 + 代理集成 + RAG + 量化支持(默认)
openaiubuntu:22.04纯 CPU 镜像,针对 OpenAI 等代理 API 优化,无 GPU 加速
vllmCUDA 基础镜像默认特性 + VLLM 高性能推理
llama-cppCUDA 基础镜像默认特性 + llama-cpp 推理(自动设置CMAKE_ARGS="-DGGML_CUDA=ON"
fullCUDA 基础镜像全部特性(含 VLLM、llama-cpp)

常用构建命令示例:

# 查看全部可用模式 bash docker/base/build_image.sh --list-modes # 默认 CUDA 模式 bash docker/base/build_image.sh # 面向代理 API 的轻量 CPU 镜像 bash docker/base/build_image.sh --install-mode openai # 追加额外组件(如 Milvus 向量库、PostgreSQL 连接器) bash docker/base/build_image.sh --install-mode vllm --add-extras "storage_milvus,datasource_postgres" # 指定镜像名与 Python 版本(最低要求 3.10,默认 3.11) bash docker/base/build_image.sh --image-name mycompany/dbgpt --python-version 3.11

构建过程采用多阶段构建:先在 builder 阶段通过uv sync安装全部 Python 依赖,再把虚拟环境复制到最终镜像(存放于/opt/.uv.venv),详见 docker/base/Dockerfile。

方案一:代理模型部署(无需 GPU)

代理模型部署模式下,LLM 推理完全由云端 API(如 SiliconFlow、AI/ML API)完成,不需要 GPU 环境,适合在纯 CPU 服务器上快速体验 DB-GPT 的全部能力。

1. 拉取官方代理镜像

docker pull eosphorosai/dbgpt-openai:latest

2. 运行容器

本示例要求你提供有效的 SiliconFlow API Key(在 SiliconFlow 注册并创建 API Key 即可获得),也可以设置AIMLAPI_API_KEY来使用 AI/ML API 服务。

使用 SiliconFlow:

docker run -it --rm -e SILICONFLOW_API_KEY=${SILICONFLOW_API_KEY} \ -p 5670:5670 --name dbgpt eosphorosai/dbgpt-openai

或使用 AI/ML API:

docker run -it --rm -e AIMLAPI_API_KEY=${AIMLAPI_API_KEY} \ -p 5670:5670 --name dbgpt eosphorosai/dbgpt-openai

请务必将${SILICONFLOW_API_KEY}${AIMLAPI_API_KEY}替换为你自己的 API Key。命令执行后,浏览器访问 http://localhost:5670 即可进入 Web 界面。

代理模型配置原理解读

容器默认加载的配置文件是configs/dbgpt-proxy-siliconflow.toml(仓库示例),它演示了代理模型场景下的完整模型编排:通过provider = "proxy/siliconflow"接入云端 LLM,同时以 OpenAI 兼容接口(proxy/openai)接入 embedding 模型,并配置了独立的 reranker 模型:

[models] [[models.llms]] name = "Qwen/Qwen2.5-Coder-32B-Instruct" provider = "proxy/siliconflow" api_key = "${env:SILICONFLOW_API_KEY}" [[models.embeddings]] name = "BAAI/bge-large-zh-v1.5" provider = "proxy/openai" api_url = "https://api.siliconflow.cn/v1/embeddings" api_key = "${env:SILICONFLOW_API_KEY}" [[models.rerankers]] name = "BAAI/bge-reranker-v2-m3" provider = "proxy/siliconflow" api_key = "${env:SILICONFLOW_API_KEY}"

关键点说明:

  • ${env:SILICONFLOW_API_KEY}:配置支持从环境变量读取密钥,这正是上文docker run -e传入变量的落地位置,避免把密钥写死在配置文件里;
  • Web 服务监听:默认host = "0.0.0.0"port = 5670,与-p 5670:5670端口映射对应;
  • 数据落盘:默认使用 SQLite(pilot/meta_data/dbgpt.db)+ Chroma 向量库(pilot/data),无需额外数据库即可运行。

方案二:本地 GPU 模型部署(Local Model)

该部署方式需要GPU 环境,模型权重从本地文件系统加载,而非从 Hugging Face 或 ModelScope 在线下载。当你已经将模型下载到本地机器,或希望使用其他来源的模型时,这种方式尤其适用。

前置条件:安装 NVIDIA Container Toolkit

运行容器前,需要先安装 NVIDIA Container Toolkit(参照 NVIDIA 官方安装指南),否则--gpus all参数无法生效。

Step 1:下载模型

在运行容器前,先把模型下载到本地机器。国内用户推荐使用 ModelScope,也可使用 Hugging Face。

Qwen2.5-Coder-0.5B-Instruct(代码生成 LLM)和bge-large-zh-v1.5(中文 embedding 模型)为例:

方式 A:从 ModelScope 下载

# 1. 安装 git 与 git-lfs(如尚未安装) sudo apt-get install git git-lfs # 2. 在当前工作目录创建 models 目录 mkdir -p ./models # 3. 克隆模型仓库到 models 目录 cd ./models git lfs install git clone https://www.modelscope.cn/Qwen/Qwen2.5-Coder-0.5B-Instruct.git git clone https://www.modelscope.cn/BAAI/bge-large-zh-v1.5.git cd ..

方式 B:从 Hugging Face 下载

sudo apt-get install git git-lfs mkdir -p ./models cd ./models git lfs install git clone https://huggingface.co/Qwen/Qwen2.5-Coder-0.5B-Instruct git clone https://huggingface.co/BAAI/bge-large-zh-v1.5 cd ..

下载完成后,模型分别位于./models/Qwen2.5-Coder-0.5B-Instruct./models/bge-large-zh-v1.5目录。

Step 2:编写配置文件

创建名为dbgpt-local-gpu.toml的配置文件,内容如下:

[models] [[models.llms]] name = "Qwen2.5-Coder-0.5B-Instruct" provider = "hf" # Specify the model path in the local file system path = "/app/models/Qwen2.5-Coder-0.5B-Instruct" [[models.embeddings]] name = "BAAI/bge-large-zh-v1.5" provider = "hf" # Specify the model path in the local file system path = "/app/models/bge-large-zh-v1.5"

注意:这里的path指向的是容器内部的路径,/app/models是稍后通过-v挂载进来的宿主机./models目录。provider = "hf"表示通过 Hugging Face Transformers 框架从本地路径加载模型。仓库中的 configs/dbgpt-local-vllm.toml 提供了同类本地模型的另一种写法(使用vllm作为 provider),可对照参考。

Step 3:运行容器

将本地models目录与配置文件挂载进容器:

docker run --ipc host --gpus all \ -it --rm \ -p 5670:5670 \ -v ./dbgpt-local-gpu.toml:/app/configs/dbgpt-local-gpu.toml \ -v ./models:/app/models \ --name dbgpt \ eosphorosai/dbgpt \ dbgpt start webserver --config /app/configs/dbgpt-local-gpu.toml

命令逐项说明:

  • --ipc host:启用宿主机 IPC 模式,提升共享内存访问性能(对 PyTorch 多进程 DataLoader 等场景尤为重要);
  • --gpus all:允许容器使用宿主机全部可用 GPU;
  • -v ./dbgpt-local-gpu.toml:/app/configs/dbgpt-local-gpu.toml:把本地配置文件挂载进容器(覆盖镜像内同名文件);
  • -v ./models:/app/models:把本地模型目录挂载进容器,与配置中的/app/models/...路径对应;
  • eosphorosai/dbgpt:GPU 版镜像;
  • dbgpt start webserver --config /app/configs/dbgpt-local-gpu.toml:显式指定配置文件启动 Web 服务。该命令的默认形态就是镜像的CMD(见 docker/base/Dockerfile),此处通过命令行参数覆盖。

Step 4:访问应用

容器运行后,在浏览器访问 http://localhost:5670 即可使用应用。

Step 5:持久化数据(可选)

容器停止或删除后,默认情况下容器内数据会丢失。可以通过将pilot/datapilot/message目录映射到宿主机来持久化应用数据与消息记录。

  1. 创建本地持久化目录:
mkdir -p ./pilot/data mkdir -p ./pilot/message mkdir -p ./pilot/alembic_versions
  1. 修改dbgpt-local-gpu.toml,将数据库路径指向挂载目录:
[service.web.database] type = "sqlite" path = "/app/pilot/message/dbgpt.db"
  1. 在原有命令基础上追加数据卷挂载:
docker run --ipc host --gpus all \ -it --rm \ -p 5670:5670 \ -v ./dbgpt-local-gpu.toml:/app/configs/dbgpt-local-gpu.toml \ -v ./models:/app/models \ -v ./pilot/data:/app/pilot/data \ -v ./pilot/message:/app/pilot/message \ -v ./pilot/alembic_versions:/app/pilot/meta_data/alembic/versions \ --name dbgpt \ eosphorosai/dbgpt \ dbgpt start webserver --config /app/configs/dbgpt-local-gpu.toml

这样pilot/data(向量库等数据)与pilot/message(应用消息与 SQLite 数据库)都会持久化在宿主机上;alembic_versions目录用于保存数据库迁移脚本版本,确保后续升级时 schema 迁移可追溯。

完成后的目录结构

完成上述步骤后,你的目录结构应如下所示:

. ├── dbgpt-local-gpu.toml ├── models │ ├── Qwen2.5-Coder-0.5B-Instruct │ └── bge-large-zh-v1.5 ├── pilot │ ├── data │ └── message

该结构保证了模型与业务数据都保存在宿主机本地,并通过挂载方式进入容器,容器重建后依然可用、不丢数据。

补充方案:Docker Compose 一键编排

如果觉得逐条docker run参数繁琐,仓库根目录还提供了完整的 docker-compose.yml 编排文件,它同时拉起 MySQL 数据库与 webserver 两个容器,同样基于 SiliconFlow 代理模型(也可改用AIMLAPI_API_KEY):

SILICONFLOW_API_KEY=${SILICONFLOW_API_KEY} docker compose up -d

启动成功后可以看到两个容器就绪:

[+] Running 3/3 ✔ Network dbgptnet Created 0.0s ✔ Container db-gpt-db-1 Started 0.2s ✔ Container db-gpt-webserver-1 Started 0.2s

查看日志:

docker logs db-gpt-webserver-1 -f

从 docker-compose.yml 可以看到两个关键设计:

  • webserver 使用代理镜像eosphorosai/dbgpt-openai:latest,命令为dbgpt start webserver --config /app/configs/dbgpt-proxy-siliconflow-mysql.toml,通过环境变量把SILICONFLOW_API_KEY与 MySQL 连接信息注入配置;
  • 数据库由 MySQL 容器承载docker-entrypoint-initdb.d目录会初始化 assets/schema/dbgpt.sql 与示例 SQL,webserver 通过depends_on等待数据库就绪(并配置了restart: unless-stopped兜底重启)。

部署方式速查与选型建议

场景镜像GPU模型来源关键参数
快速体验、纯 CPU 服务器eosphorosai/dbgpt-openai不需要云端 APISILICONFLOW_API_KEYAIMLAPI_API_KEY
本地私有化推理eosphorosai/dbgpt需要(--gpus all本地文件(-v ./models:/app/models自定义dbgpt-local-gpu.toml
数据库编排一体化compose 服务webserver+db不需要云端 API + MySQL.env中传入 API Key

几点选型与运维建议:

  • 端口:三种方案均统一暴露5670,对应配置中的[service.web] port = 5670
  • 密钥管理:优先通过-e或环境变量注入,避免写入配置仓库;
  • 数据安全:生产环境务必按 Step 5 持久化pilot/datapilot/messagealembic_versions三个目录;
  • 构建定制:需要集成 Milvus/Elasticsearch 等组件时,使用 docker/base/build_image.sh 的--add-extras参数重新构建镜像,避免运行时出现组件缺失。

按照本文两条主线任选其一,你即可在 Docker 环境中完成 DB-GPT 的部署并进入 Web 界面使用;进一步了解镜像构建的更多定制选项,可继续阅读 构建 Docker 镜像。

【免费下载链接】DB-GPTopen-source agentic AI data assistant for the next generation of AI + Data products.项目地址: https://gitcode.com/GitHub_Trending/db/DB-GPT

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

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

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

立即咨询