Mit docker-Komponieren mit GELF-Protokoll-Treiber

Laut auf der offiziellen Docker docs, ist es möglich, den stdout und stderr Ausgabe von einem container als GELF Nachrichten das ist ein format, das verstanden wird, z.B. durch Graylog /Graylog2 und logstash.

Dies funktioniert gut, wenn ich meine Behälter manuell von der Befehlszeile aus. Zum Beispiel,

docker run --log-driver=gelf --log-opt gelf-address=udp://localhost:12201 busybox echo This is my  message.

schickt eine log-Nachricht auf mein Graylog2-server läuft auf localhost was ist ein UDP-input-listener konfiguriert am port 12201.

Jetzt, ich möchten, verwenden Sie die gleiche Protokoll-Optionen mit docker-Komponieren, die nach den docs, sollte im Prinzip möglich. Jedoch, die Dokumente erwähnen keine log-Formate, aber json-file, syslog und none und wenn ich so etwas wie

my-container:
  container_name: ...
  build: ...
  ports: ...
  log_driver: "gelf"
  log_opt:
    gelf-address: "udp://localhost:12201"

in meinem docker-compose.yml Datei dann docker-compose up schlägt fehl mit:

Traceback (most recent call last):
  File "<string>", line 3, in <module>
  File "/code/build/docker-compose/out00-PYZ.pyz/compose.cli.main", line 39, in main
  File "/code/build/docker-compose/out00-PYZ.pyz/compose.cli.docopt_command", line 21, in sys_dispatch
  File "/code/build/docker-compose/out00-PYZ.pyz/compose.cli.command", line 27, in dispatch
  File "/code/build/docker-compose/out00-PYZ.pyz/compose.cli.docopt_command", line 24, in dispatch
  File "/code/build/docker-compose/out00-PYZ.pyz/compose.cli.command", line 59, in perform_command
  File "/code/build/docker-compose/out00-PYZ.pyz/compose.cli.main", line 495, in up
  File "/code/build/docker-compose/out00-PYZ.pyz/compose.project", line 265, in up
  File "/code/build/docker-compose/out00-PYZ.pyz/compose.service", line 369, in execute_convergence_plan
  File "/code/build/docker-compose/out00-PYZ.pyz/compose.service", line 270, in create_container
  File "/code/build/docker-compose/out00-PYZ.pyz/compose.service", line 643, in _get_container_create_options
  File "/code/build/docker-compose/out00-PYZ.pyz/compose.service", line 656, in _get_container_host_config
  File "/code/build/docker-compose/out00-PYZ.pyz/docker.utils.types", line 27, in __init__
ValueError: LogConfig.type must be one of (json-file, syslog, none)

Für den Rekord ist, wurde diese auf docker-verfassen docker 1.4.0 und 1.8.1, bauen d12ea79.

Offenbar, Hafenarbeiter und docker-Komponieren sind nicht auf der gleichen Ebene der Umsetzung hier. Ich habe gerade festgestellt, dass dieser bereits gelöst und in die Master branch ist auf Github zu finden
https://github.com/docker/compose/issues/1869
und
https://github.com/docker/docker-py/pull/724 .

Gibt es eine Möglichkeit, entweder re-install docker-Komponieren aus dem aktuellen Master-branch, oder fügen Sie diese zu einer vorhandenen installation manuell? Ich konnte die Datei nicht finden, wo das Begehen, geht überall auf meinem host...

Dieser behoben wird docker-py == 1.4.0 und wird behoben werden in den docker-compose == 1.5.0 release
Yep, ich sah, dass auch. Allerdings docker-compose == 1.5.0 werden veröffentlicht auf 10/13/2015, also werde ich wohl noch etwas warten. Ich habe gerade versucht, installieren Sie die neueste master von Github über pip install -U https://github.com/docker/docker-py.git und dann docker-compose --version gibt die korrekte Ausgabe 1.5.0-dev. Noch sind alle docker-verfassen Befehle wie docker-compose up scheitern mit raise ValueError("No JSON object could be decoded") ValueError: No JSON object could be decoded. Jede Idee hierzu?
Es sollte fest auf master jetzt
Sorry, die falschen link in der pip Aussage in meinem Kommentar oben sollte es schon pip install -U https://github.com/docker/compose/archive/master.zip. Aber ich bekomme immer noch den gleichen Fehler. Funktioniert es bei dir (oder sonst jemand)?
Ich glaube ich könnte mich geirrt haben, den code zu beheben dies gerade zusammengeführt wurde vor ein paar Minuten. Sorry für die Verwirrung.

InformationsquelleAutor Dirk | 2015-09-09

Schreibe einen Kommentar