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

标签 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

最佳答案

docker-maven-plugin 是不可能的。请参阅this

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

Specifying -t is forbidden when the client standard output is redirected or piped

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

关于java - 无法使用 Maven 插件读取 Docker 内的用户输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42225386/

相关文章:

java - 使用java.util.Scanner验证输入

java - 如何让这个 HashMap<Integer[], Integer> 按照我想要的方式工作?

Java EE 6 : Target Unreachable, 标识符 'helloBean' 解析为空

java - 获取 Maven AbstractMojo @parameters pom 标签属性

docker - 在 Windows 容器中运行 erlang 时出错

mysql - 将 NodeJS 容器连接到 MySQL 数据库

java - 类成员与子类的对象变量

java - 如何在maven中指定本地jar的路径

oracle - Micronaut-data : No current JDBC Connection found. 考虑将此调用包装在事务边界中

docker - 工作从哪里获取环境变量?