python - 带有 Docker 的 Tika 解析器 python 给出 RuntimeError:详细信息:无法启动 Tika 服务器
问题描述
如果没有 Docker,脚本能够使用 tika 解析 pdf 文件。
但是,当我尝试使用 Docker 时,我收到以下错误,因为 tika 服务器未运行:通过一些阅读,我尝试了以下操作 - 但错误仍然存在。
有人可以帮忙吗?
我最后附上 Dockerfile 并列出正在运行的 docker 容器 -
- 码头工人拉阿帕奇/蒂卡
- docker run -d -p 9998:9998 apache/tika
- cat Dockerfile(最后列出)
- docker build -t docker_parser 。
docker 运行 docker_parser
码头工人ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
8ff9fd3d0a84 docker_parser "python ./scripts/..." 2 days ago Exited (0) 4 minutes ago adoring_mestorf
fdf132926c61 apache/tika "/bin/sh -c 'java ..." 2 days ago Up 6 minutes 0.0.0.0:9998->9998/tcp optimistic_ride
- Dockerfile:
FROM python:3
RUN pip3 install --upgrade pip requests
RUN pip3 install python-docx tika numpy pandas
RUN mkdir scripts
RUN mkdir pdfs
RUN mkdir output
ADD runner.py /scripts/
ADD header_parser.py /scripts/
ADD keyword_parser.py /scripts/
ADD *.pdf /pdfs/
CMD [ "python", "./scripts/runner.py" ]
8. 代码错误:sentence_parser 哎呀!错误类型:发生。详细信息:无法启动 Tika 服务器。错误类型:在行:156
解决方案
看起来您没有指定容器之间的链接,因此 tika-python 无法连接到端口 9998。您可以在 docker_parser 容器中添加 Java 并让它托管 Tika Server,否则您需要链接容器。
如果您想使用这两个镜像,您可以在运行时使用 Docker CLI 上的 --link 选项,或者构建一个网络(docker network create)并将两个容器连接在一起(docker network connect)。我通常使用docker-compose来简化这些事情并在那里指定链接。
推荐阅读
- debugging - 跟踪/基准测试 Haskell 函数
- javascript - 在 reactjs 功能组件中使用 setInterval() 时未按预期递增
- discord.js - 加入时将 MEMBER 添加到用户名
- javascript - 宏任务和微任务练习
- http-proxy - 在 urllib3 中,我需要绕过代理
- codeception - Codeception:类“tests\_support\AcceptanceTester”不存在
- reactjs - React - 导航到另一个子组件时更新或重新渲染父组件
- xpath - 两个系统中 XQuery 执行的不同行为
- r - 如何在分组数据帧上使用 dplyr::across 和多参数函数?
- database - 如何在 tomcat 配置中加密 oracle ucp 数据库连接?