我的 python 项目在本地运行,并且它可以工作。我将 python 中的 tesseract 与 subprocess 包一起使用。
然后我部署了我的项目,因为我使用 Flask,所以我安装了tiangolo-uwsgi-flask-nginx-docker https://github.com/tiangolo/uwsgi-nginx-flask-docker但是,Tesseract 没有安装在那里。这就是为什么我的项目不再工作,因为它找不到超正方体。它无法识别安装在我的 AWS 实例上的 tesseract,因为 tesseract 未安装在 docker 容器中。
这就是为什么我也想使用超正方体 4 Docker https://github.com/tesseract-shadow/tesseract-ocr-re其中安装了 Tesseract。
我有两个 Docker:
c82b61361992 tesseractshadow/tesseract4re:latest "/bin/bash" 6 seconds ago Up 5 seconds t4re
e122633ef81c my_project:latest "/entrypoint.sh /sta 35 minutes ago Up 35 minutes 0.0.0.0:80->80/tcp, 443/tcp modest_perlman
但我不知道如何诉说my_project
它必须从 Tesseract Container 中取出 Tesseract。
I read 这个帖子 https://deis.com/blog/2016/connecting-docker-containers-1/关于连接两个 Docker 容器,但我更迷失了。 :)
我看到 Tesseract Docker 应该这样工作:
#!/bin/bash
docker ps -f name=t4re
TASK_TMP_DIR=TASK_$$_$(date +"%N")
echo "====== TASK $TASK_TMP_DIR started ======"
docker exec -it t4re mkdir \-p ./$TASK_TMP_DIR/
docker cp ./ocr-files/phototest.tif t4re:/home/work/$TASK_TMP_DIR/
docker exec -it t4re /bin/bash -c "mkdir -p ./$TASK_TMP_DIR/out/; cd ./$TASK_TMP_DIR/out/; tesseract ../phototest.tif phototest -l eng --psm 1 --oem 2 txt pdf hocr"
mkdir -p ./ocr-files/output/$TASK_TMP_DIR/
docker cp t4re:/home/work/$TASK_TMP_DIR/out/ ./ocr-files/output/$TASK_TMP_DIR/
docker exec -it t4re rm \-r ./$TASK_TMP_DIR/
docker exec -it t4re ls
echo "====== Result files was copied to ./ocr-files/output/$TASK_TMP_DIR/ ======"
但我不知道如何在我的 python 脚本和其他容器中实现它。
我的 python-tesseract 脚本看起来非常类似于pytesseract.py https://github.com/madmaze/pytesseract/blob/master/src/pytesseract.py我只是更改了几行并删除了一些我不需要的东西。
也许有人知道如何做到这一点,或者可以提出另一种更好的方法来使用 tesseracttiangolo-docker