JK-LLM-OCR(PP-OCRv5_server)在 Unraid 上 Docker 部署(CPU版)
参考我的NAS Intel® Xeon® CPU D-1581 @ 1.80GHz 64G内存
目录结构(构建上下文)
建议在同一目录下放 Dockerfile 和源码:
jk-llm-ocr-docker/
Dockerfile
JK-LLM-OCR/
server/
...
1) Dockerfile
FROM python:3.11-slim-bookworm
WORKDIR /app
# 基础依赖(含调试工具 + OpenCV/Paddle 常见依赖)
RUN set -eux; \
sed -i \
-e 's|http://deb.debian.org/debian|https://mirrors.tuna.tsinghua.edu.cn/debian|g' \
-e 's|http://security.debian.org/debian-security|https://mirrors.tuna.tsinghua.edu.cn/debian-security|g' \
-e 's|http://deb.debian.org/debian-security|https://mirrors.tuna.tsinghua.edu.cn/debian-security|g' \
/etc/apt/sources.list.d/debian.sources \
&& apt-get update \
&& apt-get install -y --no-install-recommends \
bash \
curl \
git \
ca-certificates \
iproute2 \
procps \
net-tools \
vim-tiny \
less \
libgl1 \
libglib2.0-0 \
libsm6 \
libxext6 \
libxrender1 \
libgomp1 \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*
# 拷贝本地源码(只需要 server 也行,这里直接拷贝整个仓库)
COPY JK-LLM-OCR/ /app
WORKDIR /app/server
RUN chmod +x ./scripts/start_ppocrv5_server.sh
# 升级 pip
RUN python -m pip install --upgrade pip
# 安装依赖(CPU 推理已验证组合)
RUN python -m pip install "paddlepaddle==3.2.2" -f https://www.paddlepaddle.org.cn/packages/stable/cpu/ \
&& python -m pip install "paddleocr==3.4.0" "paddlex==3.4.1"
# 端口(实际服务用 8080;50000 可保留声明)
EXPOSE 50000 8080
CMD ["bash", "-lc", "./scripts/start_ppocrv5_server.sh"]
2) 构建镜像
在 Dockerfile 所在目录执行:
docker build -t jk-llm-ocr:cpu .
可选自检(确认依赖没问题):
docker run --rm -it jk-llm-ocr:cpu \
bash -lc "python3 -c 'import paddleocr; print(paddleocr.__version__)'"
3) 下载模型(持久化到宿主机目录)
建议把模型放到宿主机目录,避免容器重建后丢失:
mkdir -p /mnt/user/appdata/jk-llm-ocr/models
用一次性容器下载模型到挂载目录:
docker run --rm -it \
-e PADDLE_PDX_DISABLE_MODEL_SOURCE_CHECK=True \
-v /mnt/user/appdata/jk-llm-ocr/models:/app/server/models \
jk-llm-ocr:cpu \
bash -lc "cd /app/server && ./scripts/download_ppocrv5_server_models.sh && ls -lah /app/server/models"
4) 部署运行(推荐:host 网络 + 监听 0.0.0.0)
docker rm -f jk-llm-ocr 2>/dev/null || true
docker run -d --name jk-llm-ocr \
--network host \
-e HOST=0.0.0.0 \
-e PORT=8080 \
-e PADDLE_PDX_DISABLE_MODEL_SOURCE_CHECK=True \
-v /mnt/user/appdata/jk-llm-ocr/models:/app/server/models \
--restart unless-stopped \
jk-llm-ocr:cpu
5) 验证
在 Unraid 上:
curl -sS http://127.0.0.1:8080/healthz
在局域网其他机器(或本机用内网 IP):
curl -sS http://192.168.1.5:8080/healthz
预期返回:
6) Bob 插件配置(示例)
OCR 服务地址填:
http://192.168.1.5:8080/ocr
JK-LLM-OCR(PP-OCRv5_server)在 Unraid 上 Docker 部署(CPU版)
参考我的NAS Intel® Xeon® CPU D-1581 @ 1.80GHz 64G内存
目录结构(构建上下文)
建议在同一目录下放 Dockerfile 和源码:
1) Dockerfile
2) 构建镜像
在 Dockerfile 所在目录执行:
docker build -t jk-llm-ocr:cpu .可选自检(确认依赖没问题):
docker run --rm -it jk-llm-ocr:cpu \ bash -lc "python3 -c 'import paddleocr; print(paddleocr.__version__)'"3) 下载模型(持久化到宿主机目录)
建议把模型放到宿主机目录,避免容器重建后丢失:
用一次性容器下载模型到挂载目录:
docker run --rm -it \ -e PADDLE_PDX_DISABLE_MODEL_SOURCE_CHECK=True \ -v /mnt/user/appdata/jk-llm-ocr/models:/app/server/models \ jk-llm-ocr:cpu \ bash -lc "cd /app/server && ./scripts/download_ppocrv5_server_models.sh && ls -lah /app/server/models"4) 部署运行(推荐:host 网络 + 监听 0.0.0.0)
5) 验证
在 Unraid 上:
在局域网其他机器(或本机用内网 IP):
预期返回:
{"status":"ok"}6) Bob 插件配置(示例)
OCR 服务地址填: