Redirecionar saída de comando com supervisord

1
docker -H :4000 events | ./docker_events.py

docker -H :4000 events fornecerá os eventos continuamente até que você pressione Crtl+C . Então, eu pipe a saída para meu script personalizado docker_events.py que analisa a saída que foi retornada por docker -H :4000 events e, em seguida, fornece sua própria versão de saída (na verdade, ele enviará dados json para redis !)

Eu incluí a linha acima em supervisord .conf como abaixo

[program:docker_events]
command=docker -H :4000 events | python /root/docker_events.py
autostart=true
autorestart=true
stderr_logfile=/var/log/docker_events.err.log
stdout_logfile=/var/log/docker_events.out.log

mas não está funcionando corretamente; Eu posso ver o erro em docker_events.err.log

Usage:  docker events [OPTIONS]

Get real time events from the server
docker: "events" requires 0 arguments.
See 'docker events --help'.

Ele está aceitando | como argumento. Então, posso resolver esse problema?

    
por Veerendra 05.04.2016 / 13:54

1 resposta

3

Você usa o encanamento do shell e ele não é tratado corretamente no seu arquivo de configuração. Acho que um comando correto pode ser

command=bash -c "docker -H :4000 events | python /root/docker_events.py"
    
por 05.04.2016 / 14:02