Como tornar o “processo de verificação” da Monit condicional dentro da janela de encaixe com base em argumentos de execução do docker?

4

Eu gostaria de fazer o trabalho de "check process" da Monit condicionalmente baseado em uma variável env.

Aqui está o pseudo-código do que eu gostaria de alcançar (não uma sintaxe válida de configuração de monit):

[ -n "$run_foo" ] && check process foo ....

Meu caso de uso: Eu tenho uma imagem docker que inicia o processo de monit como este:

CMD ["/bin/monit", "-c","/config/monit.conf"]

Monit então inicia vários daemons.

Agora, gostaria de poder dizer em tempo de execução quais daemons eu quero iniciar em um contêiner específico criado a partir dessa imagem, como este:

docker run --env="run_foo=1;run_bar=1" ...

Estou ciente do monit unmonitor e de argumentos semelhantes, mas acredito que eles não servem ao meu propósito.

Pense em algo assim:

start program="/bin/bash -c '[ -n \"$run_foo\" ] && /bin/foo .."

No entanto, parece que fará com que o monit gire continuamente tentando iniciar e monitorar coisas que não devem ser iniciadas.

Estou ciente da possibilidade de usar diferentes arquivos de configuração de monit ou usando diferentes imagens docker - estas não se qualificam como resposta.

Outras ideias apreciadas.

    
por Dmitry z 17.03.2015 / 20:41

0 respostas