领事与领事检查

因此,我有一个领事检查,监视一个容器,并被devise为容器停止时的关键。 我想创build一个consul监视器,在检查关键之后或者几个关键响应之后(例如,如果我的检查发送5个关键响应,我希望它运行一个脚本),它将运行一个脚本。

这里是我的工作检查json和我的手表可能看起来像我的猜测:

{ // this check works "checks": [ { "id": "docker_stuff", "name": "curl test", "notes": "curls the docker container", "script": "/scripts/docker.py", "interval": "1s" } ], //this watch doesn't work "watches": [ { "Node": "client2", "CheckID": "docker-stuff", "Name": "docker-stuff-watch", "Status": "critical", "Status_amt": "5", "handler": "/scripts/new-docker.sh", "Output": "container relaunched", } ] } 

我需要在手表中更改什么才能使其工作?

我是否还需要使用领事活动来观看我的健康检查,然后触发执行我的/scripts/new-docker.sh脚本的(事件types的)领事观察? 如果是的话,我将如何做一个监督我的健康检查的领事事件? 例如,如果这是我的领事检查,观察和事件,我需要改变什么才能做到这一点?

 { "checks": [ { "id": "docker_stuff", "name": "curl test", "notes": "curls the docker container", "script": "/scripts/docker.py", "interval": "1s" } ], "watches": [ { "type": "event", "name": "docker-stuff-watch", "handler": "/scripts/new-docker.sh" } ], "events": [ { "Node": "client2", "CheckID": "docker-stuff", "Name": "docker-stuff-event", "Status": "critical", "Status_amt": "5", "Output": "container relaunched", } ] } 

我需要在手表中更改什么才能使其工作?

有什么错误吗? 确保您的监视处理程序'/scripts/new-docker.sh'正在使用Consul将要发送的STDIN,即使将它扔到/ dev / null,否则该进程将永远等待它被使用

就像是

 while read -r -t 0; do read -r; done 

我build议考虑升级到下一个版本的Docker 1.12(目前发布的候选版本)。 服务的新概念可以用来说明要运行的容器的数量。

Dockerfile中还有一个新的HEALTHCHECK指令,使您可以将检查脚本与容器映像打包在一起。

这些新function可能使您能够使用consulreplace您必须执行的function。

Interesting Posts