我正在添加Apache,用于从文档和图像中提取文本(使用TikaOcr)到基于AppService之上的Azure函数中已有的服务中。现在,Apache需要在本地机器上安装tesseract。为了克服这个问题,我使用apt-get将(通过ssh-ing)设置到服务器中,但是(据我所知)设置是在基本的AppService层上执行的。因此,对并发OCR命令的调用确实减慢了我的功能。由于没有Tesseract的官方二进制文件,我想知道是否有以下任何一种可能:
我尝试用下面的dockerfile使用tesseract构建docker映像(按照这里的说明),但是Apache无法用它来执行OCR。
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一起工作呢?
发布于 2021-03-25 07:41:36
在阅读了码头文档并了解了一些有关码头的基本知识之后,我终于发现tesseract实际上已经安装在Azure AppService层下面,不知何故不允许容器访问它。如果将Tesseract安装在最上层,则可以将Tesseract包含在Dockerfile的底部,如下所示:
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应用程序捆绑在一起的需求,但不幸的是,调用仍然非常缓慢。
https://stackoverflow.com/questions/66759395
复制相似问题