In base a to the official Docker docs, è possibile ottenere l'output stdout
e stderr
di un contenitore come GELF messages che è un formato compreso ad es. Graylog/Graylog2 e logstash.Utilizzo della finestra mobile-comporre con il driver di registro GELF
Questo funziona correttamente quando eseguo i miei contenitori manualmente dalla riga di comando. Per esempio,
docker run --log-driver=gelf --log-opt gelf-address=udp://localhost:12201 busybox echo This is my message.
invierà un messaggio di log al server Graylog2 attivo sulla macchina locale, che ha un ascoltatore di ingresso UDP configurato sulla porta 12201.
Ora, voglio usare le stesse opzioni di registrazione con cui docker-compose , secondo i documenti, should be possible in principle. Tuttavia, la documentazione non menzionano alcun formati di log ma json-file
, syslog
e none
e quando includo qualcosa come
my-container:
container_name: ...
build: ...
ports: ...
log_driver: "gelf"
log_opt:
gelf-address: "udp://localhost:12201"
nel mio file docker-compose.yml
poi docker-compose up
fallisce con:
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)
Per la cronaca, questo era su docker-compose 1.4.0 e docker 1.8.1, compilare d12ea79.
Apparentemente, Docker e docker-compose non sono allo stesso livello di implementazione qui. Ho appena scoperto che questo è già stato risolto e incluso nello Master branch
su Github, vedere https://github.com/docker/compose/issues/1869 e https://github.com/docker/docker-py/pull/724.
Esiste un modo per reinstallare la finestra mobile-compose dal ramo master corrente o per aggiungerlo manualmente a un'installazione esistente? Non riesco a trovare il file in cui il commit va ovunque sul mio host ...
Questo problema viene risolto in 'docker-py == 1.4.0' e verrà risolto nella versione' docker-compose == 1.5.0' – dnephin
Sì, l'ho visto anch'io. Tuttavia, 'docker-compose == 1.5.0' sarà rilasciato il [13/10/2015] (https://github.com/docker/compose/wiki/1.5.0-Milestone-Project-Page), quindi Probabilmente dovrò aspettare un po '.Ho appena provato a installare l'ultimo 'master' da Github tramite' pip install -U https: // github.com/docker/docker-py.git' e quindi 'docker-compose --version' fornisce l'output corretto' 1.5 0,0-dev'. Tuttavia, tutti i comandi di composizione del docker come 'docker-compose up' falliscono con' raise ValueError ("Nessun oggetto JSON può essere decodificato") ValueError: Nessun oggetto JSON può essere decodificato. Qualche idea su questo? – Dirk
Dovrebbe essere corretto sul master ora – dnephin