Тема: the input device is not a TTY. If you are using mintty, try prefixing

Потрібно за допомогою C# програми відкрити консоль контейнера і в консолі контейнера виконати команду.

Цей код відкриває має відкривати консоль контейнера

...
CMD.ContainerShell = "exec -it {0} bash";
containerId = <ІД Контейнера>
...
private void RunDockerShell(string containerId)
        {
            processDockerShell = new Process();
            processDockerShell.StartInfo.FileName = "docker.exe";
            processDockerShell.StartInfo.RedirectStandardInput = true;
            processDockerShell.StartInfo.RedirectStandardOutput = true;
            processDockerShell.StartInfo.CreateNoWindow = false;
            processDockerShell.StartInfo.UseShellExecute = false;
            var CMDContainerShell = string.Format(CMD.ContainerShell, containerId);
            processDockerShell.StartInfo.Arguments = CMDContainerShell;
            processDockerShell.Start();
        }

Зразу після виконання процесу processDockerShell.Start виникає помилка "the input device is not a TTY.  If you are using mintty, try prefixing".

Задача:
Відкрити консоль контейнера і виконати команду

myapp --info

myapp - вже встановлено у контейнері докер.

Якщо просто відкрити CMD і написати

docker exec -it <ІД Контейнера> bash
myapp --info

команда виконується.

Значить я щось "накрутив" з викликом в С#.

Можете підказати як викликати консоль в контейнері докера ?

Подякували: leofun011

2

Re: the input device is not a TTY. If you are using mintty, try prefixing

Вже розібрався. Потрібно було забрати "-t"

CMD.ContainerShell = "exec -i {0} bash";
Подякували: leofun011