Parsr 的 Docker 部署与镜像构建实战指南

发布时间:2026/10/10 18:02:47
Parsr 的 Docker 部署与镜像构建实战指南 后端数据工程【免费下载链接】ParsrTransforms PDF, Documents and Images into Enriched Structured Data项目地址https://gitcode.com/gh_mirrors/pa/Parsr点击查看免费下载本文以 Parsr 官方 Docker 文档docs/docker.md为主线结合仓库内 docker-compose.yml、docker-compose-build.yml 及docker/目录下的全套 Dockerfile完整讲解如何用 Docker Compose 一键拉起 Parsr 的 API 与演示 UI以及如何从源码自行构建 Parsr 及其依赖镜像。阅读本文后你将掌握 Parsr 容器的端口、卷、环境变量配置原理并能独立完成标准镜像的启动与自定义镜像的编译。Parsr 是一个将 PDF、文档与图片转换为增强结构化数据的开源工具其服务由API 后端 演示 UI 前端两部分组成。官方提供了一条最省事的运行路径——在仓库根目录执行一条docker-compose up命令即可同时启动两个容器同时也保留了从 Dockerfile 自行构建全部镜像的完整能力。本文依次展开这两条路径并深入到每个 Dockerfile 与 Compose 配置的细节帮助你理解容器的组成与可调参数。1. 一键运行docker-compose up在仓库根目录即包含docker-compose.yml的目录执行docker-compose up该命令会依据根目录下的 docker-compose.yml 拉取并启动2 个容器容器镜像对外端口作用parsraxarev/parsrhttp://localhost:3001Parsr API 服务parsr-uiaxarev/parsr-ui-localhosthttp://localhost:8080演示 UI上传与预览界面启动后打开http://localhost:8080即可看到演示界面界面上传文档后由前端把请求转发给运行在3001端口的 API。若希望以后台方式运行不占用当前终端可使用docker-compose up -d1.1 首次启动会创建持久化数据卷官方文档特别提醒首次启动时会创建一个 Docker volume用于在容器重启后保留数据。对应到 docker-compose.yml 的第 18-20 行Compose 声明了一个名为pipeline的命名卷volumes: pipeline: driver: local这个卷被挂载到 API 容器的输出目录上parsr: ... volumes: - ./pipeline/:/opt/app-root/src/api/server/dist/output也就是说Parsr 处理文档后生成的结果文件按文档写入output/目录会落在宿主机仓库根目录下的./pipeline/文件夹中。可以从源码佐证该输出目录的用途API 端点在 api/server/src/api.ts 中将输出目录定义为path.resolve(${__dirname}/output)并在处理文档时创建以文档名-文档ID命名的子目录api.ts第 328-343 行处理结果通过 FileManager.ts 写入其中。挂载后容器重建甚至镜像升级都不会丢失这些处理产物。1.2 ABBYY 环境变量可选Compose 文件中parsr服务还暴露了一个环境变量占位environment: ABBYY_SERVER_URL:默认留空即不使用 ABBYY 外部识别引擎。若你部署了 ABBYY FineReader Server可在启动前通过.env文件或命令行传入其网络地址ABBYY_SERVER_URLhttp://your-abbyy-host:port docker-compose up该变量在服务端源码中用于校验并读取 ABBYY 凭证见 server/src/input/abbyy/AbbyyTools.ts 与 server/src/types/Config.ts未配置时 Parsr 会回退到内置的 PDF 提取与 OCR 流水线功能不受影响。2. 停止与清理停止并移除容器docker-compose down注意docker-compose down默认不会删除命名卷./pipeline/中的数据仍会保留如需连同数据卷一起删除可追加-vdocker-compose down -v3. 自行构建docker-compose -f docker-compose-build.yml build官方文档提供了第二种路径自己动手构建 Parsr 及其全部依赖镜像。在仓库根目录执行docker-compose -f docker-compose-build.yml build与运行用的docker-compose.yml不同构建配置文件 docker-compose-build.yml 定义了3 个服务它们之间存在依赖层级服务镜像名Dockerfile说明parsr-baseaxaref/parsr-basedocker/parsr-base/Dockerfile基础镜像预装全部依赖parsraxarev/parsrdocker/parsr/DockerfileAPI 镜像基于 parsr-base 构建parsr-uiaxarev/parsr-ui-localhostdocker/parsr-ui/Dockerfile前端 UI 镜像构建前请先确认本机已安装 Docker 与 Docker Compose并拥有网络访问权限构建过程需要拉取 Debian、UBI8、nginx 等基础镜像及 apt/pip/npm 包。3.1 基础镜像 parsr-base依赖全集docker/parsr-base/Dockerfile 以debian:10为起点分三步装配运行环境Chrome/Chromium 运行库安装gconf-service、libgtk-3-0、libnss3等一整套系统库并下载google-chrome-unstable及多语言字体fonts-ipafont-gothic、fonts-wqy-zenhei、fonts-thai-tlwg等这是为 Puppeteer 内置 Chromium 提供中、日、阿、希伯来、泰等字符集渲染能力Dockerfile 第 7-15 行的注释明确说明。文档处理工具链imagemagick图像处理、mupdf/mupdf-tools与qpdfPDF 解析与修复、pandoc格式转换、tesseract-ocr-allOCR、nodejs/npm、python-pdfminer与python3-pdfminer文本提取、python3-opencv图像预处理。Python 识别栈通过pip3安装ghostscript、camelot-py[cv]表格提取、numpy、pillow、scikit-learn0.23.2机器学习模块、tabula-py等同时以policy.xml覆盖 ImageMagick 的默认安全策略。末尾设置USER 1001以非 root 用户运行并默认工作目录为/opt/app-root/src。该镜像将后续所有 Parsr 处理模块Pdfminer、Tesseract、Camelot 表格检测、ML 标题检测等所需的运行时一次性打包。3.2 API 镜像 parsr编译 TypeScript 并启动服务docker/parsr/Dockerfile 基于axarev/parsr-base版本号由BASEIMAGE_VERSION构建参数控制默认latestARG BASEIMAGE_VERSION FROM axarev/parsr-base:${BASEIMAGE_VERSION:-latest} ENV NODE_ENV development EXPOSE 3001 COPY --chown1001:0 . /opt/app-root/src RUN docker/parsr/build.sh CMD docker/parsr/run.sh构建时通过build.sh编译项目含api/server与server两个 TypeScript 子项目的依赖安装与编译运行入口是 docker/parsr/run.sh其核心动作是切换到api/server目录并执行exec node dist/index.js这正好与 API 包的 package.json 中定义的入口一致3001端口由 api.ts 的服务器监听逻辑承接。3.3 前端镜像 parsr-uiVue 构建 Nginx 托管docker/parsr-ui/Dockerfile 采用两阶段构建第一阶段基于 Red Hat UBI8 的nodejs-10镜像通过VUE_APP_API构建参数注入 API 地址默认http://localhost:3001执行docker/parsr-ui/build.sh对 demo/vue-viewer 前端项目进行打包产物输出到demo/vue-viewer/dist第二阶段以nginx:stable为基础把构建产物复制到/usr/share/nginx/html并启用 docker/parsr-ui/nginx.conf 作为站点配置。该配置监听 80 端口用try_files $uri $uri/ /index.html实现 Vue Router 的 history 模式回退保证前端路由刷新不 404。所以容器对外暴露8080:80Nginx 在容器内监听 80宿主机通过 8080 访问。3.4 构建时的关键参数构建配置中有两个值得注意的参数DEV_MODE: trueparsr服务传给 API Dockerfile 的开发模式标记可让NODE_ENVdevelopment生效VUE_APP_API: ${VUE_APP_API:-http://localhost:3001}parsr-ui服务如果 API 没有运行在localhost:3001必须重新构建 UI 镜像并传入正确的VUE_APP_API——这是 docker-compose-build.yml 第 28 行注释明确指出的要点。例如VUE_APP_APIhttp://192.168.1.10:3001 docker-compose -f docker-compose-build.yml build parsr-ui4. 两个 Compose 文件的分工与关系docker-compose.ymldocker-compose-build.yml用途直接运行拉取已发布的镜像从源码构建镜像服务数2parsr、parsr-ui3parsr-base、parsr、parsr-ui端口映射3001 / 80803001 / 8080数据卷./pipeline/→ 容器输出目录同左额外配置ABBYY_SERVER_URLDEV_MODE、VUE_APP_API两条路径共享相同的端口、卷与环境变量约定因此你可以先用docker-compose up快速体验再根据业务需要如修改了源码、更换 API 地址切换到构建流程产出自己的镜像。构建完成后即可用docker-compose -f docker-compose-build.yml up直接以本地镜像启动整条流水线。5. 常见问题速查UI 打不开 / 上传后无响应先确认 API 容器是否在3001端口监听再确认 UI 构建时VUE_APP_API是否指向可达的 API 地址见 3.4。容器重启后处理结果丢失确认parsr服务的卷挂载存在正常配置下处理产物保存在宿主机./pipeline/目录由 Compose 的命名卷机制保证持久化。想替换识别引擎在.env中设置ABBYY_SERVER_URL后重新docker-compose upParsr 同时支持 ABBYY、Tesseract、Pdfminer、Amazon Textract 等输入提取器容器内已默认内置 Tesseract 与 Pdfminer见 server/src/input。构建很慢parsr-base需要安装大量系统依赖与 Python 包属正常现象该镜像只应在依赖变更时重建日常开发直接复用已构建的axarev/parsr-base即可docker-compose-build.yml 第 4-5 行注释即为此意。6. 小结Parsr 的容器化部署遵循两条路径、一个约定的设计docker-compose up面向绝大多数用户一条命令拉起 API3001与 UI8080并借由pipeline命名卷实现数据持久化docker-compose -f docker-compose-build.yml build面向需要自定义的开发者可依次构建parsr-base、parsr、parsr-ui三个镜像其中 UI 镜像的 API 地址通过VUE_APP_API构建参数控制是前后端联调时最需要留意的配置点。理解了这些文件与参数无论是要快速验证 Parsr 的能力还是将其整合进自己的服务编排体系都有了明确的落脚点。更多容器相关的细节如镜像 tag 规则脚本可进一步查看 docker/tags.sh 与 docker-compose.yml。赞分享后端数据工程【免费下载链接】ParsrTransforms PDF, Documents and Images into Enriched Structured Data项目地址https://gitcode.com/gh_mirrors/pa/Parsr点击查看免费下载相关推荐Oracle Access Management (OAM) Docker镜像构建与部署指南Oracle Access Management OAM Docker镜像构建与部署指南 概述 Oracle Access Management OAM 是Or示例工程云原生Oracle REST Data Services (ORDS) Docker镜像构建与部署指南Oracle REST Data Services ORDS Docker镜像构建与部署指南 概述 Oracle REST Data Services ORDS示例工程云原生Win11Debloat10 分钟免费给 Windows 11 去臃肿清隐私的完整脚本改错可回滚Win11Debloat10 分钟免费给 Windows 11 去臃肿清隐私的完整脚本改错可回滚 Win11Debloat 是一个免费、免安装的 Power桌面应用CLI上一篇Kopia 跨平台备份工具完全指南端到端加密快照、去重压缩与多云存储接入下一篇如何快速激活Windows和OfficeKMS智能激活脚本的终极指南创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询