TesseractNotFoundError:两个docker容器python应用程序(docker compose)

TesseractNotFoundError:两个docker容器python应用程序(docker compose),python,docker,docker-compose,tesseract,Python,Docker,Docker Compose,Tesseract,我有一个本地运行的带有tesseract的python项目,它在Pycharm中工作。 我使用了docker-compose.yml,它有两个容器(app和t4re),如下所示: version: '3' services: app: build: . image: ocr_app:latest depends_on: - tesseract tesseract: image: tesseractshadow/tesseract4re

我有一个本地运行的带有tesseract的python项目,它在Pycharm中工作。 我使用了docker-compose.yml,它有两个容器(app和t4re),如下所示:

version: '3'
services:
  app:
    build: .
    image: ocr_app:latest
    depends_on:
      - tesseract
  tesseract:
    image: tesseractshadow/tesseract4re
    container_name: t4re
FROM python:3.6.1
# Create app directory
WORKDIR /app

# Bundle app source
COPY venv/src ./src
COPY venv/data ./data

# Install app dependencies
RUN pip install -r src/requirements.txt

CMD python src/ocr.py
我的Dockerfile如下所示:

version: '3'
services:
  app:
    build: .
    image: ocr_app:latest
    depends_on:
      - tesseract
  tesseract:
    image: tesseractshadow/tesseract4re
    container_name: t4re
FROM python:3.6.1
# Create app directory
WORKDIR /app

# Bundle app source
COPY venv/src ./src
COPY venv/data ./data

# Install app dependencies
RUN pip install -r src/requirements.txt

CMD python src/ocr.py
我不断地发现这些错误:

FileNotFoundError: [Errno 2] No such file or directory: 'tesseract'

pytesseract.pytesseract.TesseractNotFoundError: tesseract is not installed or it's not in your path
我是docker的新手,阅读了大量文档,但仍然无法修复此错误。我已经阅读了以下答案。我想我必须用一个环境变量将tesseract链接到python应用程序,但我不知道如何链接


您需要在docker映像中安装tesseract,然后才能使用它。默认情况下,python:3.6.1映像中没有tesseract。你需要在ubuntu中安装tesseract和python,然后继续你的工作。 以下是解决方案的docker文件:

FROM ubuntu:18.04
RUN apt-get --fix-missing update && apt-get --fix-broken install && apt-get install -y poppler-utils && apt-get install -y tesseract-ocr && \
    apt-get install -y libtesseract-dev && apt-get install -y libleptonica-dev && ldconfig && apt-get install -y python3.6 && \
    apt-get install -y python3-pip && apt install -y libsm6 libxext6


请根据您的要求调整python版本。

我在Docker(Ubuntu容器)上运行的一个项目中遇到了这个问题。
要解决这个问题,我必须:
-通过requirements.txt安装pytesseract;因此,您的requirements.txt应该包含:

pytesseract  
-您必须安装tesseract ocr。为此,您必须在dockerfile中包含以下行:

FROM ubuntu:18.04

ENV PYTHONUNBUFFERED 1
RUN apt-get update && apt-get install -y software-properties-common && add-apt-repository -y ppa:alex-p/tesseract-ocr
RUN apt-get update && apt-get install -y tesseract-ocr-all 
RUN apt-get install -y python3-pip python3-minimal libsm6 libxext6 
# To make sure that tesseract-ocr is installed, uncomment the following line.  
# RUN tesseract --version

要使用tesseract,您应该安装pytesseract(我想您已经通过requirements.txt安装了),并且您必须通过dockerfileYes安装tesseract ocr,我通过requirements.txt安装了pytesseract。我想我可以使用tesseractshadow/tesseract4re映像,而不是在ubuntu中安装它。我不确定这是否可行,但我描述的方法对我很有效。你找到了在dockerfile中包含tesseract的解决方案吗?我面临着一个类似的问题,即将需要tesseract到docker中的本地文件进行容器化@stafazzoli@liamsuma:是的,这里的两个答案都有效,我在我的项目中使用了其中一个。