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等工具也可以这样做。