【发布时间】:2019-11-15 07:36:12
【问题描述】:
全部,
我们有一个在 docker 中运行的 c# dotnet core 3.0 控制台应用程序(不是 ASP.NET),我们使用键盘来执行控制台命令。在 Docker 中,我们的应用程序在尝试读取控制台键盘(stdin)时失败,因为 docker 重定向了输入流,我们可以使用 Console.isStdinRedirected 进行测试。
但是,当我们将终端远程附加到 docker 容器中的应用程序时,我们希望重新启用控制台键盘输入,但这也是一种重定向,因此 isStdinRedirected 对我们没有帮助。
有没有一种方法可以测试标准输入是否处于活动状态,以便我们可以重新启用我们的键盘?我只能想到在常规循环中(带睡眠)读取键盘时使用 try / catch,但这是一个丑陋的解决方案。
或者,有没有办法让 docker 可以向 dotnet 发出信号表明终端现在已连接?
【问题讨论】:
标签: c# docker .net-core console