一、安装miniconda
打开wsl
# WSL 安装 Miniconda
cd ~
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
bash Miniconda3-latest-Linux-x86_64.sh
source ~/.bashrc
conda --version
conda config --set auto_activate_base false
conda tos accept --override-channels --channel https://repo.anaconda.com/pkgs/main
conda tos accept --override-channels --channel https://repo.anaconda.com/pkgs/r
二、安装deepseekOCR相关依赖
# 拉取项目
git clone https://github.com/deepseek-ai/DeepSeek-OCR.git
# 安装docker-ocr 的conda 环境
conda create -n deepseek-ocr python=3.12.9 -y
conda activate deepseek-ocr
# 安装pytorch、cuda12.8
pip install torch==2.8.0 torchvision==0.23.0 torchaudio==2.8.0 --index-url https://download.pytorch.org/whl/cu128
# CUDA Toolkit Installer
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-ubuntu2204.pin
sudo mv cuda-ubuntu2204.pin /etc/apt/preferences.d/cuda-repository-pin-600
wget https://developer.download.nvidia.com/compute/cuda/12.8.0/local_installers/cuda-repo-ubuntu2204-12-8-local_12.8.0-570.86.10-1_amd64.deb
sudo dpkg -i cuda-repo-ubuntu2204-12-8-local_12.8.0-570.86.10-1_amd64.deb
sudo cp /var/cuda-repo-ubuntu2204-12-8-local/cuda-*-keyring.gpg /usr/share/keyrings/
sudo apt-get update
sudo apt-get -y install cuda-toolkit-12-8
三、手动编译vllm
由于50系显卡还对vllm版本的不支持,所以需要手动编译来进行适配
git clone https://github.com/vllm-project/vllm.git
cd vllm
git checkout v0.8.5
python use_existing_torch.py
pip install -r requirements/build.txt
pip install setuptools_scm
MAX_JOBS=6 python -m build --wheel --no-isolation
cd dist
cp dist/vllm-0.8.6*.whl /mnt/e/project/DeepSeek-OCR/
pip install vllm-0.8.6*.whl
四、安装对应flash_attn
官网找对应版本的下载
# 安装 flash_attn-2.8.3+cu12torch2.8cxx11abiTRUE-cp312-cp312-linux_x86_64.whl
pip install flash_attn-2.8.3+cu12torch2.8cxx11abiTRUE-cp312-cp312-linux_x86_64.whl
# 安装项目依赖
pip install -r requirements.txt
五、模型下载
# 下载模型(创建llms文件夹)
pip install modelscope
cd llms
创建 download.py 并写入后运行 python download.py
#模型下载
from modelscope import snapshot_download
model_dir = snapshot_download('deepseek-ai/DeepSeek-OCR', cache_dir="/root/llms")
六、部署docker镜像
编写dockerfile(应该可以优化,我这个镜像打包出来40G,太大了)
# 使用带 CUDA 12.8 的 runtime 镜像
FROM nvidia/cuda:12.8.0-runtime-ubuntu22.04
ENV DEBIAN_FRONTEND=noninteractive \
PYTHONUNBUFFERED=1
# 容器内代码根目录
WORKDIR /workspace
# 1. 安装基础工具 + Python 3.12
RUN set -eux; \
# 先把 CUDA 的 apt 源干掉(我们不从 apt 装 CUDA)
rm -f /etc/apt/sources.list.d/cuda* || true; \
apt-get update && \
apt-get install -y --no-install-recommends \
software-properties-common \
git wget curl build-essential pkg-config \
libssl-dev libffi-dev && \
add-apt-repository ppa:deadsnakes/ppa -y || true; \
apt-get update && \
apt-get install -y --no-install-recommends \
python3.12 python3.12-dev python3.12-venv && \
rm -rf /var/lib/apt/lists/* && \
ln -sf /usr/bin/python3.12 /usr/bin/python3 && \
ln -sf /usr/bin/python3.12 /usr/bin/python && \
curl -sS https://bootstrap.pypa.io/get-pip.py -o /tmp/get-pip.py && \
python3.12 /tmp/get-pip.py && \
rm /tmp/get-pip.py
# 2. 安装 PyTorch 2.8.0(cu128,对齐你 WSL 里的版本)
RUN pip install --upgrade pip && \
pip install \
torch==2.8.0 \
torchvision==0.23.0 \
torchaudio==2.8.0 \
--index-url https://download.pytorch.org/whl/cu128
# 3. 拷贝项目代码
COPY . /workspace
# 4. 安装你预编译好的 vLLM whl
RUN pip install /workspace/vllm-0.8.6.dev0+gba41cc90e.d20251118.cu128-cp312-cp312-linux_x86_64.whl
# 5. 安装根目录的通用依赖(如果存在 requirements.txt)
RUN if [ -f /workspace/requirements.txt ]; then \
pip install -r /workspace/requirements.txt; \
fi
# 6. 安装 flash_attn 的 whl(注意文件名要和你本地的一致)
RUN pip install /workspace/flash_attn-2.8.3+cu12torch2.8cxx11abiTRUE-cp312-cp312-linux_x86_64.whl
# 7. 预创建 vllms 目录(运行时用 -v 挂载覆盖)
RUN mkdir -p /workspace/vllms
# 8. 暴露 HTTP 服务端口(app.py 默认是 8080)
EXPOSE 8000
# 9. 切回 DeepSeek-OCR-vllm 目录,启动服务
WORKDIR /workspace/DeepSeek-OCR-master/DeepSeek-OCR-vllm
CMD ["uvicorn", "ocr_api:app", "--host", "0.0.0.0", "--port", "8000"]
执行打包镜像
cd /mnt/e/project/DeepSeek-OCR
docker build --progress=plain -t deepseek-ocr:latest.
运行镜像(挂载本地模型文件)
docker run --gpus all -v /mnt/e/project/DeepSeek-OCR/vllms/deepseek-ai/DeepSeek-OCR:/workspace/vllms/deepseek-ai/DeepSeek-OCR \
-e MODEL_PATH=/workspace/vllms/deepseek-ai/DeepSeek-OCR \
-p 8000:8000 \
deepseek-ocr:latest