Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 为什么docker compose输出发送到ProcessStartInfo中的StandardError?_C#_.net_Docker_.net Core_Docker Compose - Fatal编程技术网

C# 为什么docker compose输出发送到ProcessStartInfo中的StandardError?

C# 为什么docker compose输出发送到ProcessStartInfo中的StandardError?,c#,.net,docker,.net-core,docker-compose,C#,.net,Docker,.net Core,Docker Compose,我正在使用ProcessStartInfo运行docker compose命令。命令成功运行,没有错误,但standarderro流具有实际数据/文本。你知道我为什么以及如何将其传输到StandardOutput吗 命令: ProcessStartInfo commandInfo = new ProcessStartInfo( "docker-compose", "-p mynodename -f my-compose-file.yml up -d" ); //Capture

我正在使用
ProcessStartInfo
运行
docker compose
命令。命令成功运行,没有错误,但
standarderro
流具有实际数据/文本。你知道我为什么以及如何将其传输到
StandardOutput

命令:

ProcessStartInfo commandInfo = new ProcessStartInfo(
    "docker-compose",
    "-p mynodename -f my-compose-file.yml up -d"
);

//Capture the output
commandInfo.RedirectStandardOutput = true;
commandInfo.RedirectStandardError = true;

Process process = new Process
{
    StartInfo = commandInfo
};

process.Start();
process.WaitForExit();

if (process.ExitCode == 0)
{
    //Why is there something here?
    string error = process.StandardError?.ReadToEnd();
}
以下是输出:

“正在创建redis_节点…
\u001b[1A\u001b[2K
正在创建redis_节点…
\u001b[32mdone\u001b[0m\r\u001b[1B


我认为仅仅因为它说这是一个StandardError流,并不一定意味着它是一个错误。即使在Microsoft为StandardOutput提供的示例中,他们也使用StandardError发送成功状态。也许,StandardOutput是一个更详细的事件输出,StandardError更像是docker compose的一般状态。Stderr通常是例如,用于报告进度。FFmpeg和git等工具也可以这样做。