Estou usando socat
para escrever no stdin de um contêiner docker em execução. O código a seguir está funcionando bem no Linux:
echo "ls" | socat EXEC:"docker attach container_name",pty STDIN &> /dev/null
No entanto, no macOS o acima não funciona. Tentei mexer nas configurações, mas não consegui fazer funcionar.
Estou usando a seguinte versão:
$ brew info socat
==> socat: stable 1.8.0.1 (bottled)
Quando o docker attach tenta gravar no PTY, ele encontra um erro "Descritor de arquivo inválido" porque o lado de gravação não está configurado corretamente no MacOS.
Então você precisa:
-
significando tanto entrada padrão quanto saída padrão.Não vejo uma maneira fácil de obter o código de saída. Uma solução alternativa é passá-lo usando a saída padrão: