Leiten Sie Docker-Protokolle -f an jq weiter

Leiten Sie Docker-Protokolle -f an jq weiter

Ich versuche, JSON-Protokolle von Docker in umzuleiten jq. Das funktioniert einwandfrei, wenn ich Folgendes verwende:

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

Aber wenn ich versuche, ihm zu folgen, bleibt es hängen.

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

Obwohl Tailing allein funktioniert:

docker logs -f container_id 2>&1

Was übersehe ich hier?

Antwort1

Versuchen Sie, hinzuzufügen --unbuffered --stream, damit Ihr Befehl wird

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

Es scheint, dass viele andere Leute ein ähnliches Problem hatten. Hier sind einige Fehlerberichte auf jq zu diesem Thema

verwandte Informationen