Получить стандартный вывод в реальном времени из контейнера докеров удаленно выполненной командой

Этот обрабатывает встроенные разделители строк:

$ cat /tmp/bla
"PRCD-15234","CDOC","12","JUN-20-2016 17:00:00","title, with commas, ","Y!##!"
"PRCD-99999","CDOC","1","Sep-26-2016 17:00:00","title without comma","Y!##!"
"PRCD-99999","CDOC","1","Sep-26-2016 17:00:00","embedded\",delimiters\",","Y!##!"

sed -E 's / "(([^"] * (\\ ")?) *) ", / \ 1 | / g; s /" | (([^ "] * (\\")?) *) "/ \ 1 / g '

PRCD-15234|CDOC|12|JUN-20-2016 17:00:00|title, with commas, |Y!##!
PRCD-99999|CDOC|1|Sep-26-2016 17:00:00|title without comma|Y!##!
PRCD-99999|CDOC|1|Sep-26-2016 17:00:00|embedded\",delimiters\",|Y!##!
2
18.04.2017, 16:59
2 ответа

Выяснил это из помощи на github'е Docker'а. Я не упомянул, что пытался запустить скрипт python в контейнере, но я не думал, что это важно.

На самом деле это была не проблема Docker, а проблема python. Я узнал, что Docker уже предоставляет stdout в реальном времени. Python держал весь stdout в своем буфере и не выводил его до завершения сценария. За исключением случаев, когда код запускался в терминале с -t.

В команде docker мне нужно было только вызвать скрипт с python -u