无法使用 Maven 插件读取 Docker 内的用户输入
Can't read user input inside the Docker using Maven plugin
描述
我正在编写一个简单的控制台应用程序,该应用程序在 Docker 容器中启动,读取用户输入并对其进行处理。对于自动化 Docker,我使用 docker-maven-plugin。
读取用户输入的代码如下:
new Scanner(System.in).nextLine()
还尝试了以下方法:
new BufferedReader(new InputStreamReader(System.in)).readLine()
运行 没有 Docker 的应用程序在这两种情况下都有效。
I 运行 docker 用命令:
mvn clean docker:build docker:run
但是在 Docker 中,当涉及到用户输入时,代码只是 returns null
并且不会阻止用户输入。在 Scanner
的情况下,我得到 java.util.NoSuchElementException: No line found
基本相同。
我在 Whosebug 上发现了一个类似的问题,其中传递命令行参数 -i -t
似乎有所帮助。
有什么方法可以将这些命令行参数添加到 Maven
运行 配置中吗?或者有什么想法为什么会发生这个问题?
信息
- Maven 版本:3.3.9
- Docker 版本:1.13.1
docker-maven-plugin. See this 不可能。
我也同意 rhuss(link 中的最后一条评论)。您正在使用 maven,这是一个构建工具,然后启动容器,这可能会以某种方式帮助您 build-test 某些东西。此外,如果您参考 docker 文档中的 this 部分,它会显示
Specifying -t is forbidden when the client standard output is redirected or piped
这可能是一个构建插件。
描述
我正在编写一个简单的控制台应用程序,该应用程序在 Docker 容器中启动,读取用户输入并对其进行处理。对于自动化 Docker,我使用 docker-maven-plugin。 读取用户输入的代码如下:
new Scanner(System.in).nextLine()
还尝试了以下方法:
new BufferedReader(new InputStreamReader(System.in)).readLine()
运行 没有 Docker 的应用程序在这两种情况下都有效。
I 运行 docker 用命令:
mvn clean docker:build docker:run
但是在 Docker 中,当涉及到用户输入时,代码只是 returns null
并且不会阻止用户输入。在 Scanner
的情况下,我得到 java.util.NoSuchElementException: No line found
基本相同。
我在 Whosebug 上发现了一个类似的问题,其中传递命令行参数 -i -t
似乎有所帮助。
有什么方法可以将这些命令行参数添加到 Maven
运行 配置中吗?或者有什么想法为什么会发生这个问题?
信息
- Maven 版本:3.3.9
- Docker 版本:1.13.1
docker-maven-plugin. See this 不可能。
我也同意 rhuss(link 中的最后一条评论)。您正在使用 maven,这是一个构建工具,然后启动容器,这可能会以某种方式帮助您 build-test 某些东西。此外,如果您参考 docker 文档中的 this 部分,它会显示
Specifying -t is forbidden when the client standard output is redirected or piped
这可能是一个构建插件。