Я пытаюсь направить json logs из докера на jq
. Он отлично работает, если я использую:Как закрепить докер в jq?
docker logs container_id 2>&1 | jq '.'
Но, если я пытаюсь к хвосту, он застревает (не показывая ничего).
docker logs -f container_id 2>&1 | jq '.'
Хотя хвостовых само по себе делает работу:
docker logs -f container_id 2>&1
Что я здесь отсутствует?
Возможно, связано с http://unix.stackexchange.com/questions/25372/turn-off-buffering-in-pipe? –
Файлы журнала хранятся в файловой системе хоста контейнера в формате JSON. Чтобы определить местоположение файлов (ов) JSON, вы можете запустить: docker inspect [container] | grep LogPath – peak
Возможно, это должно быть потоковое? Я не знаю, как вывод отличается в докере, но, возможно, вы можете использовать опцию '--stream' jq и использовать [' streaming'] (https://stedolan.github.io/jq/manual/#Streaming) фильтры для работы с данными. –