github.com/bigcommerce/nomad@v0.9.3-bc/command/docker_logger_plugin.go (about)

     1  package command
     2  
     3  import (
     4  	"strings"
     5  
     6  	log "github.com/hashicorp/go-hclog"
     7  	plugin "github.com/hashicorp/go-plugin"
     8  	"github.com/hashicorp/nomad/drivers/docker/docklog"
     9  	"github.com/hashicorp/nomad/plugins/base"
    10  )
    11  
    12  type DockerLoggerPluginCommand struct {
    13  	Meta
    14  }
    15  
    16  func (e *DockerLoggerPluginCommand) Help() string {
    17  	helpText := `
    18  	This is a command used by Nomad internally to launch the docker logger process"
    19  	`
    20  	return strings.TrimSpace(helpText)
    21  }
    22  
    23  func (e *DockerLoggerPluginCommand) Synopsis() string {
    24  	return "internal - launch a docker logger plugin"
    25  }
    26  
    27  func (e *DockerLoggerPluginCommand) Run(args []string) int {
    28  	logger := log.New(&log.LoggerOptions{
    29  		Level:      log.Trace,
    30  		JSONFormat: true,
    31  		Name:       docklog.PluginName,
    32  	})
    33  
    34  	plugin.Serve(&plugin.ServeConfig{
    35  		HandshakeConfig: base.Handshake,
    36  		Plugins: map[string]plugin.Plugin{
    37  			docklog.PluginName: docklog.NewPlugin(docklog.NewDockerLogger(logger)),
    38  		},
    39  		GRPCServer: plugin.DefaultGRPCServer,
    40  		Logger:     logger,
    41  	})
    42  	return 0
    43  }