docker logs -f を jq にパイプする

docker logs -f を jq にパイプする

私は docker から に json ログをパイプしようとしていますjq。以下を使用すると正常に動作します。

docker logs container_id 2>&1 | jq '.'

しかし、尾行しようとすると、動けなくなってしまいます。

docker logs -f container_id 2>&1 | jq '.'

tailing 自体は機能しますが、

docker logs -f container_id 2>&1

ここで何が欠けているのでしょうか?

答え1

--unbuffered --streamコマンドを追加して、

docker logs -f container_id 2>&1 | jq --unbuffered --stream '.'

他にも多くの人が同様の問題を抱えているようです。このトピックに関するjqのバグレポートをいくつか紹介します。

関連情報