透過管道 docker log -f 到 jq

透過管道 docker log -f 到 jq

我正在嘗試將 json 日誌從 docker 傳輸到jq.如果我使用它,效果很好:

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

但是,如果我試圖追蹤它,它就會被卡住。

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

雖然拖尾本身確實有效:

docker logs -f container_id 2>&1

我在這裡缺少什麼?

答案1

嘗試添加--unbuffered --stream,這樣你的命令就變成

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

似乎很多其他人也遇到類似的問題。以下是 jq 上有關此主題的一些錯誤報告

相關內容