【发布时间】:2020-06-03 11:39:33
【问题描述】:
我从 Visual Studio 2019 创建了以下简单的 dotnet 核心控制台应用程序。
Console.WriteLine("Hello World!");
var readText = Console.ReadLine();
Console.WriteLine(readText);
当我按下 F5 时,程序会在 Console.ReadLine 处等待我,直到我输入一些文本。当我输入一些文本并按回车键时,相同的文本会显示给我。
现在我为这个控制台项目添加了 docker 支持。我已经在另一个 so question 中编写了分步说明以添加 docker 支持。
添加 docker 支持后,在命令提示符中,导航到 docker-compose 文件所在的文件夹并发出命令,
docker-compose up
应用程序运行,打印 Hello World!。然后显然它停止并等待我输入一些文本。但是当我输入文本并按下回车键时,什么也没有发生。似乎我在控制台上提供的输入没有传达给在容器内运行的应用程序。
我错过了什么?为什么在容器内运行的应用程序没有接受我的输入?只需要 Ctrl+C 之后容器本身就会退出。
注意,如果容器立即退出,那么您必须将以下内容添加到 docker-compose 文件中,如同一 so question's answer 中所述。这将防止容器立即退出。
stdin_open: true
tty: true
【问题讨论】:
标签: docker .net-core docker-compose