【问题标题】:how to parse a file from a java docker container application如何从 java docker 容器应用程序中解析文件
【发布时间】:2017-08-11 11:49:55
【问题描述】:

我有一个需要解析数据集文件的 java 应用程序。我已经使用 docker 将应用程序容器化,但容器在我的主机中看不到我的文件。 因此,我需要以某种方式将其包含在 docker 容器中,或者通过映射到我的容器中的 docker 卷使其可用。

在我拥有的 java 应用程序中

String dataSet = "/usr/DataSet/TempData.txt"; // inside the container
File textfile = new File(dataSet);
Scanner sc = new Scanner(textfile);

我的文件存储在我的主机中的一个目录 (/home/myusername/Desktop/DataSet) 中。

我使用 maven 中的 spotify 插件编译和构建我的 docker 镜像。 构建映像后,我运行一个容器并映射一个包含我的 TempData.txt 的卷:

sudo docker run -it -v /home/myUserName/Desktop/DataSet:/usr/DataSet --name myapp myImageName bash

但我收到 java.io.FileNotFoundException 错误,因为该文件在我的容器中不可用..

让我的 java dockerized 应用程序能够读取和解析文件的最佳方法是什么?

感谢您的意见!

【问题讨论】:

  • 您将文件映射到/usr/DataSet,但您在/usr/TempData 中搜索文件。更改其中一个,它应该可以工作
  • 嗨,对不起,这是一个拼写错误..确实我映射到同一个目录...我编辑了帖子!
  • 我在另一个 Ubuntu 虚拟容器中测试了 docker 命令。它创建目录 /usr/DataSet 但其中没有可用的文件!
  • 你在使用 Docker for Mac 吗?
  • 不,在 Ubuntu 中。但是我的问题解决了。我将文件放在我的主目录中,然后将其映射到容器中......现在它可以工作了!也许卷只在主目录而不是其他地方工作....对我来说仍然是新的,我需要发现更多关于它的信息......感谢您的帮助:)

标签: java maven docker containers spotify


【解决方案1】:

当我将文件放入主目录时,问题就解决了。然后将其映射到我的容器中......

【讨论】:

    猜你喜欢
    • 2015-10-20
    • 2021-08-17
    • 1970-01-01
    • 2017-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多