Skip to content

Commit

Permalink
Merge pull request #3184 from hashicorp/b-docker-logging
Browse files Browse the repository at this point in the history
Fix docker user specified syslogging
  • Loading branch information
dadgar committed Sep 11, 2017
2 parents 1417904 + 9206105 commit 49c4189
Showing 1 changed file with 16 additions and 13 deletions.
29 changes: 16 additions & 13 deletions client/driver/docker.go
Original file line number Diff line number Diff line change
Expand Up @@ -626,17 +626,20 @@ func (d *DockerDriver) Start(ctx *ExecContext, task *structs.Task) (*StartRespon
return nil, fmt.Errorf("failed to set executor context: %v", err)
}

// Only launch syslog server if we're going to use it!
// The user hasn't specified any logging options so launch our own syslog
// server if possible.
syslogAddr := ""
if runtime.GOOS == "darwin" && len(d.driverConfig.Logging) == 0 {
d.logger.Printf("[DEBUG] driver.docker: disabling syslog driver as Docker for Mac workaround")
} else if len(d.driverConfig.Logging) == 0 || d.driverConfig.Logging[0].Type == "syslog" {
ss, err := exec.LaunchSyslogServer()
if err != nil {
pluginClient.Kill()
return nil, fmt.Errorf("failed to start syslog collector: %v", err)
if len(d.driverConfig.Logging) == 0 {
if runtime.GOOS == "darwin" {
d.logger.Printf("[DEBUG] driver.docker: disabling syslog driver as Docker for Mac workaround")
} else {
ss, err := exec.LaunchSyslogServer()
if err != nil {
pluginClient.Kill()
return nil, fmt.Errorf("failed to start syslog collector: %v", err)
}
syslogAddr = ss.Addr
}
syslogAddr = ss.Addr
}

config, err := d.createContainerConfig(ctx, task, d.driverConfig, syslogAddr)
Expand Down Expand Up @@ -945,14 +948,14 @@ func (d *DockerDriver) createContainerConfig(ctx *ExecContext, task *structs.Tas

memLimit := int64(task.Resources.MemoryMB) * 1024 * 1024

if len(driverConfig.Logging) == 0 || driverConfig.Logging[0].Type == "syslog" {
if runtime.GOOS != "darwin" {
if len(driverConfig.Logging) == 0 {
if runtime.GOOS == "darwin" {
d.logger.Printf("[DEBUG] driver.docker: deferring logging to docker on Docker for Mac")
} else {
d.logger.Printf("[DEBUG] driver.docker: Setting default logging options to syslog and %s", syslogAddr)
driverConfig.Logging = []DockerLoggingOpts{
{Type: "syslog", Config: map[string]string{"syslog-address": syslogAddr}},
}
} else {
d.logger.Printf("[DEBUG] driver.docker: deferring logging to docker on Docker for Mac")
}
}

Expand Down

0 comments on commit 49c4189

Please sign in to comment.