diff --git a/drivers/docker/cmd/main.go b/drivers/docker/cmd/main.go index 5c26333dd..2d0d1104d 100644 --- a/drivers/docker/cmd/main.go +++ b/drivers/docker/cmd/main.go @@ -1,12 +1,34 @@ package main import ( + "os" + log "github.com/hashicorp/go-hclog" + plugin "github.com/hashicorp/go-plugin" "github.com/hashicorp/nomad/drivers/docker" + "github.com/hashicorp/nomad/drivers/docker/docklog" "github.com/hashicorp/nomad/plugins" + "github.com/hashicorp/nomad/plugins/base" ) func main() { + + if len(os.Args) > 1 { + // Detect if we are being launched as a docker logging plugin + switch os.Args[1] { + case docklog.PluginName: + plugin.Serve(&plugin.ServeConfig{ + HandshakeConfig: base.Handshake, + Plugins: map[string]plugin.Plugin{ + docklog.PluginName: docklog.NewPlugin(docklog.NewDockerLogger(log.Default().Named(docklog.PluginName))), + }, + GRPCServer: plugin.DefaultGRPCServer, + }) + + return + } + } + // Serve the plugin plugins.Serve(factory) }