首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将tesseract-ocr与为Azure函数构建的无服务器Java应用程序捆绑在一起?

如何将tesseract-ocr与为Azure函数构建的无服务器Java应用程序捆绑在一起?
EN

Stack Overflow用户
提问于 2021-03-23 08:14:23
回答 1查看 453关注 0票数 0

我正在添加Apache,用于从文档和图像中提取文本(使用TikaOcr)到基于AppService之上的Azure函数中已有的服务中。现在,Apache需要在本地机器上安装tesseract。为了克服这个问题,我使用apt-get将(通过ssh-ing)设置到服务器中,但是(据我所知)设置是在基本的AppService层上执行的。因此,对并发OCR命令的调用确实减慢了我的功能。由于没有Tesseract的官方二进制文件,我想知道是否有以下任何一种可能:

  1. 用我的函数应用程序捆绑Tesseract
  2. 用Tesseract建立一个码头形象。
  3. 构建一个带有tesseract运行时映像(tesseract-影子/tesseract-ocr-re)的多容器码头应用程序。

我尝试用下面的dockerfile使用tesseract构建docker映像(按照这里的说明),但是Apache无法用它来执行OCR。

代码语言:javascript
运行
复制
ARG JAVA_VERSION=11

# This image additionally contains function core tools – useful when using custom extensions
#FROM mcr.microsoft.com/azure-functions/java:3.0-java$JAVA_VERSION-core-tools AS installer-env
FROM mcr.microsoft.com/azure-functions/java:3.0-java$JAVA_VERSION-build AS installer-env

RUN apt-get update && apt-get install -y tesseract-ocr

COPY . /src/functions-tika-extraction
RUN cd /src/functions-tika-extraction && \
    mkdir -p /home/site/wwwroot && \
    mvn clean package && \
    cd ./target/azure-functions/ && \
    cd $(ls -d */|head -n 1) && \
    cp -a . /home/site/wwwroot

# This image is ssh enabled
FROM mcr.microsoft.com/azure-functions/java:3.0-java$JAVA_VERSION-appservice
# This image isn't ssh enabled
#FROM mcr.microsoft.com/azure-functions/java:3.0-java$JAVA_VERSION

ENV AzureWebJobsScriptRoot=/home/site/wwwroot \
    AzureFunctionsJobHost__Logging__Console__IsEnabled=true

COPY --from=installer-env ["/home/site/wwwroot", "/home/site/wwwroot"]

我对Docker和Azure平台相当陌生,所以我在这里可能遗漏了一些东西,但是我如何才能使用Docker或任何其他方法使Azure函数与Tesseract一起工作呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-03-25 07:41:36

在阅读了码头文档并了解了一些有关码头的基本知识之后,我终于发现tesseract实际上已经安装在Azure AppService层下面,不知何故不允许容器访问它。如果将Tesseract安装在最上层,则可以将Tesseract包含在Dockerfile的底部,如下所示:

代码语言:javascript
运行
复制
ARG JAVA_VERSION=11

FROM mcr.microsoft.com/azure-functions/java:3.0-java$JAVA_VERSION-build AS installer-env

# remove this line
# RUN apt-get update && apt-get install -y tesseract-ocr

COPY . /src/functions-tika-extraction
RUN cd /src/functions-tika-extraction && \
    mkdir -p /home/site/wwwroot && \
    mvn clean package && \
    cd ./target/azure-functions/ && \
    cd $(ls -d */|head -n 1) && \
    cp -a . /home/site/wwwroot

# This image is ssh enabled
FROM mcr.microsoft.com/azure-functions/java:3.0-java$JAVA_VERSION-appservice

# add the line here
RUN apt-get update && apt-get install -y tesseract-ocr

ENV AzureWebJobsScriptRoot=/home/site/wwwroot \
    AzureFunctionsJobHost__Logging__Console__IsEnabled=true

COPY --from=installer-env ["/home/site/wwwroot", "/home/site/wwwroot"]

虽然它确实满足了我将tesseract-ocr与Azure函数Java应用程序捆绑在一起的需求,但不幸的是,调用仍然非常缓慢。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66759395

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档