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



说明

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

new Scanner(System.in).nextLine()

还尝试了以下方法:

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

在没有 Docker 的情况下运行应用程序在这两种情况下都可以工作。

我使用命令运行码头工人: mvn clean docker:build docker:run

但是,在Docker中,当涉及到用户输入时,代码只是返回null并且不会阻止用户输入。 如果是Scanner我得到java.util.NoSuchElementException: No line found,这基本上是一样的。

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

有什么方法可以将这些命令行参数添加到Maven运行配置中?或者有什么想法为什么会发生这个问题?

信息

  • Maven 版本 : 3.3.9
  • 码头工人版本 : 1.13.1

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

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

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

这可能是一个构建插件可以做到的。

相关内容

  • 没有找到相关文章

最新更新