JK-LLM-OCR 部署(Bob插件Unraid / NAS)
目录结构(构建上下文)
jk-llm-ocr-docker/
Dockerfile
JK-LLM-OCR/
server/
...
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)
EXPOSE 8080
CMD ["bash", "-lc", "./scripts/start_ppocrv5_server.sh"]
构建镜像
docker build -t jk-llm-ocr:cpu .
可选自检:
docker run --rm -it jk-llm-ocr:cpu \
bash -lc "python3 -c 'import paddleocr; print(paddleocr.__version__)'"
下载模型(持久化到宿主机目录)
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"
部署运行(推荐: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
验证
curl -sS http://127.0.0.1:8080/healthz
curl -sS http://10.0.0.4:8080/healthz
预期返回:
{"status":"ok"}
Bob 插件配置(示例)
OCR 服务地址:
http://10.0.0.4:8080/ocr
来源项目https://github.com/GravityPoet/JK-LLM-OCR.git
备注:
1.由于server中”scripts/start_ppocrv5_server.sh”设置了只监听本地(HOST=”${HOST:-127.0.0.1}“)因此,docker需要设置HOST=0.0.0.0 ,当然你也可以直接修改sh文件。
2.建议设置每天定时重启docker一次。