项目作者: gadost

项目描述 :
fsnotify events handler for other events :)
高级语言: Go
项目地址: git://github.com/gadost/docker-fsnotify-event-handler.git
创建时间: 2019-06-19T18:50:21Z
项目社区:https://github.com/gadost/docker-fsnotify-event-handler

开源协议:MIT License

下载


docker-fsnotify-event-handler

Overview

docker-fsnotify-event-handler developed for processing some filesystem events like letsencrypt cert renew for one domain on multiply hosts ( f.e. on my case - N nginx instances on different hosts using same certs. On certs renew le companion reloading only one nginx, other all proceed using old certs.).

Install

  1. git clone github.com/gadost/docker-fsnotify-event-handler
  2. cd docker-fsnotify-event-handler
  3. go build .
  4. export WATCH_PATH=/path/to/watch ; ./docker-fsnotify-event-handler

Environment

  1. // redis host , pass , db
  2. RedisAddr string `env:"REDIS_ADDR" envDefault:"localhost:6379"`
  3. RedisPass string `env:"REDIS_PASS" envDefault:""`
  4. RedisDB int `env:"REDIS_DB" envDefault:"0"`
  5. // agent set
  6. AgentsSet string `env:"AGENTS_SET_NAME" envDefault:"agents"`
  7. QueueName string `env:"QUEUE_NAME" envDefault:"lecc"`
  8. AgentName string `env:"HOSTNAME"`
  9. //check interval
  10. Interval int `env:"INTERVAL" envDefault:"20"`
  11. // Path to watch
  12. Path string `env:"WATCH_PATH"`
  13. // Docker image "test/image"
  14. Image string `env:"IMAGE"`
  15. // execute command when event happens ( f.e. "nginx -s reload" )
  16. Command string `env:"COMMAND"`

Docker example

  1. docker run -it --privileged --network=host -v /var/run/docker.sock:/var/run/docker.sock -v /path/to/watching/dir:/dir -e WATCH_PATH=/dir -e "REDIS_ADDR=somehost:6379" maxn/docker-fsnotify-event-handler:latest

Build

  1. docker build .