使用 Supervisord 命令输出重定向

使用 Supervisord 命令输出重定向
docker -H :4000 events | ./docker_events.py

docker -H :4000 events将连续给出事件,直到我们按下Crtl+C。因此,我将pipe输出发送到自定义脚本docker_events.py,该脚本解析返回的输出docker -H :4000 events,然后给出自己的输出版本(实际上它将发送 json 数据到redis!)

我将上面的行包含在supervisord .conf如下所示中

[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

但它无法正常工作;我可以看到错误 docker_events.err.log

Usage:  docker events [OPTIONS]

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

它正在|作为论证。那么我可以解决这个问题吗?

答案1

您使用了 shell 管道,但您的配置文件中没有正确处理它。我猜正确的命令可能是

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

相关内容