From 4949f344619dfd4afae8901b8ac5b5a6ff37b227 Mon Sep 17 00:00:00 2001 From: Michael Bridgen Date: Mon, 13 Oct 2014 10:50:27 +0100 Subject: [PATCH] Added container updates watcher --- updater/main.go | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 updater/main.go diff --git a/updater/main.go b/updater/main.go new file mode 100644 index 00000000..0b66d1cc --- /dev/null +++ b/updater/main.go @@ -0,0 +1,40 @@ +package main + +import ( + "flag" + "github.com/fsouza/go-dockerclient" + "log" +) + +func main() { + var ( + serverAddr string + serverPort int + apiPath string + ) + flag.StringVar(&serverAddr, "host", "", "address or hostname of server to update") + flag.IntVar(&serverPort, "port", 6785, "port on server to send updates to") + flag.StringVar(&apiPath, "api", "unix:///var/run/docker.sock", + "Path to Docker API socket") + flag.Parse() + + client, err := docker.NewClient(apiPath) + if err != nil { + log.Fatalf("Unable to connect to Docker API on %s: %s", apiPath, err) + } + + events := make(chan *docker.APIEvents) + done := make(chan bool) + client.AddEventListener(events) + + log.Printf("Using Docker API on %s", apiPath) + log.Printf("Posting updates to server %s:%d", serverAddr, serverPort) + + go func() { + for event := range events { + log.Printf("Event %s", *event) + } + done <- true + }() + <-done +}