无法使用Maven插件读取Docker内的用户输入

时间:2017-02-14 11:48:27

标签: java maven docker fabric8 docker-maven-plugin

描述

我正在编写一个在Docker容器中启动的简单控制台应用程序,读取用户输入并对其进行处理。为了自动化Docker,我使用docker-maven-plugin。 读取用户输入的代码如下:

new Scanner(System.in).nextLine()

还尝试了以下内容:

new BufferedReader(new InputStreamReader(System.in)).readLine()

在这两种情况下运行没有Docker的应用程序。

我用命令运行docker: mvn clean docker:build docker:run

然而在Docker中,当涉及到用户输入时,代码只返回null并且不会阻止用户输入。在Scanner的情况下,我得到的java.util.NoSuchElementException: No line found基本相同。

我在StackOverflow上发现了类似的问题,其中传递命令行参数-i -t似乎有所帮助。

有什么办法可以将这些命令行参数添加到Maven运行配置中吗?或者为什么会出现这个问题?

信息

  • Maven版本:3.3.9
  • Docker版本:1.13.1

1 个答案:

答案 0 :(得分:2)

docker-maven-plugin无法实现。见this

我也同意rhuss(链接中的最后评论)。你正在使用maven这是一个构建工具,然后启动容器,这可能会帮助你以某种方式构建测试的东西。另外,如果您在docker文档中引用this部分,则说明

  

当客户端标准输出被重定向或管道传输时,禁止指定-t

这可能是一个构建插件。