DB-GPT Docker 部署全指南:代理模型与本地 GPU 模型的完整实操手册
发布时间:2026/9/14 3:52:29 作者:尧图编辑部 阅读量:1,286

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 提供两种镜像准备方式实际使用时可任选其一从官方镜像仓库拉取预构建镜像镜像名为eosphorosai/dbgpt系列基于仓库源码在本地构建详见 构建 Docker 镜像。从仓库源码看官方提供了多套镜像形态eosphorosai/dbgptGPU 完整版默认命令为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_CUDAONfullCUDA 基础镜像全部特性含 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:latest2. 运行容器本示例要求你提供有效的 SiliconFlow API Key在 SiliconFlow 注册并创建 API Key 即可获得也可以设置AIMLAPI_API_KEY来使用 AI/ML API 服务。使用 SiliconFlowdocker run -it --rm -e SILICONFLOW_API_KEY${SILICONFLOW_API_KEY} \ -p 5670:5670 --name dbgpt eosphorosai/dbgpt-openai或使用 AI/ML APIdocker 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端口映射对应数据落盘默认使用 SQLitepilot/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/dbgptGPU 版镜像dbgpt start webserver --config /app/configs/dbgpt-local-gpu.toml显式指定配置文件启动 Web 服务。该命令的默认形态就是镜像的CMD见 docker/base/Dockerfile此处通过命令行参数覆盖。Step 4访问应用容器运行后在浏览器访问 http://localhost:5670 即可使用应用。Step 5持久化数据可选容器停止或删除后默认情况下容器内数据会丢失。可以通过将pilot/data与pilot/message目录映射到宿主机来持久化应用数据与消息记录。创建本地持久化目录mkdir -p ./pilot/data mkdir -p ./pilot/message mkdir -p ./pilot/alembic_versions修改dbgpt-local-gpu.toml将数据库路径指向挂载目录[service.web.database] type sqlite path /app/pilot/message/dbgpt.db在原有命令基础上追加数据卷挂载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_KEYSILICONFLOW_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 与示例 SQLwebserver 通过depends_on等待数据库就绪并配置了restart: unless-stopped兜底重启。部署方式速查与选型建议场景镜像GPU模型来源关键参数快速体验、纯 CPU 服务器eosphorosai/dbgpt-openai不需要云端 APISILICONFLOW_API_KEY或AIMLAPI_API_KEY本地私有化推理eosphorosai/dbgpt需要--gpus all本地文件-v ./models:/app/models自定义dbgpt-local-gpu.toml数据库编排一体化compose 服务webserverdb不需要云端 API MySQL.env中传入 API Key几点选型与运维建议端口三种方案均统一暴露5670对应配置中的[service.web] port 5670密钥管理优先通过-e或环境变量注入避免写入配置仓库数据安全生产环境务必按 Step 5 持久化pilot/data、pilot/message与alembic_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),仅供参考