使用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插件会做的。