我使用VisualStudio2017内置的容器编排功能将一个.NET核心控制台应用程序转换为一个文档化应用程序。VS创建了一个Dockerfile和一个Dockerfile文件.我能够成功地在容器中运行应用程序。
问题是,在某些情况下,应用程序需要在控制台输入(例如,它提出一个问题,用户必须回答是或否)。该应用程序酌情使用Console.ReadKey()或Console.ReadLine()。
传统上运行.NET核心控制台应用程序时,会弹出一个显示应用程序输出并接受输入的终端窗口。但是,当我切换到Docker时,控制台输出现在出现在屏幕底部的一个调试面板中,我无法提供任何输入。
应用程序不会失败,它只是在Console.ReadLine()命令下无限期地阻塞。
是否有一种方法可以让Visual在可以接受用户输入的传统终端中运行容器?
发布于 2022-07-11 16:20:24
Kahbazi是正确的,您需要使用-i (交互模式)和-t (tty模式)运行码头容器。例如: docker run -i -t --name containerName imageName
确保不要在分离模式下运行它,否则不会提示输入,因为容器将在后台运行。
我无法通过Visual找到一种方法来完成这个任务,所以我通过命令行使用了docker。
https://stackoverflow.com/questions/56655543
复制相似问题