i want to execute OS Command both windows and docker container (linux). When i control on windows every command which i entered work well because i can see output. When i build Dockerfile and run my app with container, send a few command i didn't take output what i expected.
My function is bellow.
public string RunCommand(string arguments)
{
var argsPrepend = "-c ";
var shellName = "/bin/sh";
if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
{
shellName = @"C:\Windows\System32\cmd.exe";
argsPrepend = "/c ";
}
try
{
Process process = new Process
{
StartInfo = new ProcessStartInfo
{
FileName = shellName,
Arguments = argsPrepend + arguments,
RedirectStandardOutput = true,
RedirectStandardError = true,
UseShellExecute = false,
}
};
process.Start();
string output = process.StandardOutput.ReadToEnd();
process.WaitForExit();
return output;
}
catch (Exception ex)
{
return ex.ToString();
}
}
When i send pwd and ls command it works well.
When i want to execute "ls -la /" or "cat /etc/passwd" i didn't get right output.
swagger-ls-la swagger-cat-etc-passwd
How can i execute OS Command over Docker Container ? What's the problem which i make or i face ?