跳到主要内容
版本:v0.7.4

DB-GPT Docker 镜像构建指南

本指南详细介绍如何使用 docker/base/build_image.sh 脚本,以各种配置构建 DB-GPT Docker 镜像。

概述

DB-GPT 构建脚本允许你根据具体需求创建定制化的 Docker 镜像。你可以选择预定义的安装模式,也可以通过指定额外依赖、环境变量等参数来自定义构建。

可用安装模式

基于 CUDA 的标准功能镜像。

bash docker/base/build_image.sh

包含:CUDA 支持、代理集成(OpenAI、Ollama、智谱、Anthropic、千帆、通义)、RAG 能力、Graph RAG、Hugging Face 集成以及量化支持。

基本用法

查看可用模式

查看所有可用的安装模式及其配置:

bash docker/base/build_image.sh --list-modes

获取帮助

显示所有可用选项:

bash docker/base/build_image.sh --help

自定义选项

Python 版本

DB-GPT 要求 Python 3.10 或更高版本。默认使用 Python 3.11,你也可以指定其他版本:

bash docker/base/build_image.sh --python-version 3.10

自定义镜像名称

为构建的镜像设置自定义名称:

bash docker/base/build_image.sh --image-name mycompany/dbgpt

镜像名称后缀

添加后缀用于版本标识或环境区分:

bash docker/base/build_image.sh --image-name-suffix v1.0

默认模式下会生成 eosphorosai/dbgpt-v1.0,指定模式下会生成 eosphorosai/dbgpt-MODE-v1.0

PIP 镜像源

指定不同的 PIP 索引地址:

bash docker/base/build_image.sh --pip-index-url https://pypi.org/simple

Ubuntu 镜像源

控制是否使用清华 Ubuntu 镜像源:

bash docker/base/build_image.sh --use-tsinghua-ubuntu false

语言偏好

设置首选语言(默认为英文):

bash docker/base/build_image.sh --language zh

高级自定义

自定义额外依赖

你可以自定义镜像中安装的 Python 包额外依赖:

完全替换默认的额外依赖:

bash docker/base/build_image.sh --extras "base,proxy_openai,rag,storage_chromadb"

可用的额外依赖

以下是一些常用的额外依赖:

依赖包说明
storage_milvusMilvus 向量存储集成
storage_elasticsearchElasticsearch 向量存储集成
datasource_postgresPostgreSQL 数据库连接器
vllmVLLM 优化推理集成
llama_cppLlama-cpp Python 绑定
llama_cpp_serverLlama-cpp HTTP 服务器

你可以在本地 DB-GPT 仓库中运行 uv run install_help.py list 查看所有可用的额外依赖。

环境变量

DB-GPT 构建支持通过环境变量进行特殊配置。主要使用的环境变量是 CMAKE_ARGS,对于 Llama-cpp 编译尤为重要。

替换默认的环境变量:

bash docker/base/build_image.sh --env-vars "CMAKE_ARGS=\"-DGGML_CUDA=ON -DLLAMA_CUBLAS=ON\""
备注

在 Llama-cpp 模式下,CMAKE_ARGS="-DGGML_CUDA=ON" 会自动设置以启用 CUDA 加速。

Docker 网络

指定构建时使用的 Docker 网络:

bash docker/base/build_image.sh --network host

自定义 Dockerfile

使用自定义 Dockerfile:

bash docker/base/build_image.sh --dockerfile Dockerfile.custom

使用场景示例

企业版:集成 PostgreSQL 和 Elasticsearch

构建集成 PostgreSQL 和 Elasticsearch 的全功能企业版:

bash docker/base/build_image.sh --install-mode full \
--add-extras "storage_elasticsearch,datasource_postgres" \
--image-name-suffix enterprise \
--python-version 3.10 \
--load-examples false

针对特定硬件优化的 Llama-cpp

使用自定义 Llama-cpp 优化参数进行构建:

bash docker/base/build_image.sh --install-mode llama-cpp \
--env-vars "CMAKE_ARGS=\"-DGGML_CUDA=ON -DGGML_AVX2=OFF -DGGML_AVX512=ON\"" \
--python-version 3.11

轻量级 OpenAI 代理

构建最小化的 OpenAI 代理镜像:

bash docker/base/build_image.sh --install-mode openai \
--use-tsinghua-ubuntu false \
--pip-index-url https://pypi.org/simple \
--load-examples false

集成 Milvus 的开发版

构建集成 Milvus 的开发版镜像:

bash docker/base/build_image.sh --install-mode vllm \
--add-extras "storage_milvus" \
--image-name-suffix dev

常见问题排查

常见构建问题

找不到 CUDA

如果遇到 CUDA 相关错误:

# 尝试使用不同的 CUDA 基础镜像
bash docker/base/build_image.sh --base-image nvidia/cuda:12.1.0-devel-ubuntu22.04

依赖包安装失败

如果额外依赖安装失败:

# 尝试减少依赖以定位问题
bash docker/base/build_image.sh --extras "base,proxy_openai,rag"

网络问题

如果遇到网络问题:

# 使用指定网络
bash docker/base/build_image.sh --network host

参数参考

脚本选项

选项说明默认值
--install-mode安装模式default
--base-image基础 Docker 镜像nvidia/cuda:12.4.0-devel-ubuntu22.04
--image-nameDocker 镜像名称eosphorosai/dbgpt
--image-name-suffix镜像名称后缀
--pip-index-urlPIP 镜像源地址https://pypi.tuna.tsinghua.edu.cn/simple
--language界面语言en
--load-examples加载示例数据true
--python-versionPython 版本3.11
--use-tsinghua-ubuntu使用清华 Ubuntu 镜像源true
--extras安装的额外依赖包取决于安装模式
--add-extras追加的额外依赖包
--env-vars构建环境变量取决于安装模式
--add-env-vars追加的环境变量
--dockerfile使用的 DockerfileDockerfile
--network使用的 Docker 网络

相关资源