docker - 如何使用容器编排为 Visual Studio .NET Core 项目提供控制台

我已使用 Visual Studio 2017 的内置容器编排功能将 .NET Core 控制台应用程序转换为 Dockerized 应用程序。 VS 创建了一个 Dockerfile 和一个 docker-compose 文件。我能够在容器内成功运行应用程序。

问题在于,在某些情况下,应用程序需要在控制台输入(例如,它提出一个问题,用户必须回答是或否)。该应用根据需要使用 Console.ReadKey()Console.ReadLine()

传统上运行 .NET Core 控制台应用程序时,会弹出一个终端窗口,显示应用程序的输出并接受输入。但是,当我切换到 Docker 时,控制台输出现在出现在屏幕底部的调试面板之一中,我无法提供任何输入。

应用程序不会运行失败,它只是无限期地阻塞在 Console.ReadLine() 命令处。

有没有办法让 Visual Studio 在可以接受用户输入的传统终端中运行容器?

最佳答案

Kahbazi 是对的,您需要使用 -i(交互模式)和 -t(tty 模式)运行 docker 容器。例如:docker run -i -t --name containerName imageName

确保不要在分离模式下运行它,否则不会提示您输入,因为容器将在后台运行。

我找不到通过 Visual Studio 执行此操作的方法,因此我改为通过命令行使用 docker。

关于docker - 如何使用容器编排为 Visual Studio .NET Core 项目提供控制台输入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56655543/

相关文章:

javascript - 在 React-native 应用程序中使用 Fable 中的 nativ

c# - 标签助手 asp-route- 不工作 - Razor Pages(.Net Core 3

react-native - ScrollView : content image is cropp

reactjs - React Router - 父级在导航子路由时重新渲染

flutter - 抽屉菜单 - 侧面的子菜单

amazon-web-services - 是否可以向 InputPath 添加新的键/值?

google-cloud-platform - 使用 Terraformer\Terraform 克

reactjs - React hook 等待上一个调用完成

apache-spark - 如何将处理程序附加到 sparkUI

javascript - 在 node.js 中更改 FCM 通知的颜色和图标