使用Maven插件无法读取Docker内部的用户input

描述

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

new Scanner(System.in).nextLine()

还尝试了以下内容:

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

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

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

但是,在Docker中,当涉及到用户input时,代码只返回null ,不会阻止用户input。 在Scanner情况下,我得到了java.util.NoSuchElementException: No line found ,这是基本相同的。

我发现StackOverflow类似的问题,通过命令行参数-i -t似乎帮助。

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

信息

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

docker-maven-plugin是不可能的。 看到这个

我也同意rhuss(链接中的最后一个评论)。 你正在使用maven这是一个构build工具,然后启动容器,这可能会帮助你以某种方式build立testing的东西。 另外,如果你在Docker文档中提到这个部分,它会说

当客户端标准输出被redirect或传送时,指定-t是禁止的

这可能是一个构build插件会做的。