使用时,我注意到了奇怪的行为docker-compose
。
Console.ReadLine()
不等待用户输入。
观察以下简化的点网核心c#控制台应用程序:
private static void Main(string[] args)
{
Console.WriteLine("Input something:");
while (true)
{
var line = Console.ReadLine();
Console.WriteLine($"{DateTime.Now} Input was: {line}");
System.Threading.Thread.Sleep(1000);
}
}
Run Code Online (Sandbox Code Playgroud)
如果通过docker run -i readline
它运行,效果很好:
但是,如果使用docker-compose up
它,则仅循环而无需等待STDIN上的输入:
这是为什么?
您可以使用以下方法自己尝试:
git clone https://github.com/mh-qUjB/docker-dotnetcore-readline.git
cd ./docker-dotnetcore-readline/ReadLine
docker-compose up
Run Code Online (Sandbox Code Playgroud)
我目前正在对此进行测试:
Ubuntu 16.04
Docker version 18.06.1-ce, build e68fc7a
docker-compose version 1.22.0, build f46880fe
<TargetFramework>netcoreapp2.1</TargetFramework>
谢谢。
PS:如果您可以改善这个问题的标题,我会很高兴。