无法从docker中装入的目录中读取文件

无法从docker中装入的目录中读取文件,docker,ocr,tesseract,Docker,Ocr,Tesseract,我正在开发一个项目,它接受用户输入的图像(照片),使用命令行Tesseract OCR对其执行OCR,将结果存储在文本文件中作为“input.txt”,然后使用java程序对该文件执行stopword删除。所有这些都应该在docker容器内完成。我创建了docker图像,其中安装了Tesseract OCR。我有工作停止字删除Java代码 在我的项目中,我在docker image中安装了主机os目录作为“/work”目录,这样我就可以直接从用户的主目录中获取“image(photos)”,如下

我正在开发一个项目,它接受用户输入的图像(照片),使用命令行Tesseract OCR对其执行OCR,将结果存储在文本文件中作为“input.txt”,然后使用java程序对该文件执行stopword删除。所有这些都应该在docker容器内完成。我创建了docker图像,其中安装了Tesseract OCR。我有工作停止字删除Java代码

在我的项目中,我在docker image中安装了主机os目录作为“/work”目录,这样我就可以直接从用户的主目录中获取“image(photos)”,如下所示:

    docker run --rm -v `pwd`:/work -w /work ocr
这里的“ocr”是我的docker图像。我已经创建了bash脚本,它调用Tessract OCR,然后调用StopWordRemoving java代码,如下所示

    #!/bin/bash
    tesseract sample.jpg input
    java StopWords

问题是,“tesseract sample.jpg input”的输出保存为“input.txt”,但它在java程序中不可访问,而如果我尝试使用相同的代码从给定目录打开其他文件,它就会正常工作

文件“input.txt”是写入主机装载目录还是写入容器文件系统?我假设“input.txt”编写成功。如果您可以尝试在Java之外访问文件“input.txt”以缩小问题范围,这将是一件好事。

文件“input.txt”是写入主机安装目录还是写入容器文件系统?我假设“input.txt”编写成功。如果您可以尝试在Java之外访问文件“input.txt”以缩小问题范围,这将是一件好事。

是的,该文件被写入装载的主机目录。我尝试了不同的方法,最后我找到了一种方法。我在java中执行了shell命令。在我的程序中,我使用“cat input.txt”,其输出存储在BufferedReader中,稍后我处理该输出。是的,文件被写入挂载的主机目录。我尝试了不同的方法,最后我找到了一种方法。我在java中执行了shell命令。在我的程序中,我使用“cat input.txt”,其输出存储在BufferedReader中,稍后我处理该输出。