diff --git a/daemon/monitor.go b/daemon/monitor.go index 96d7afd920..9227525e72 100644 --- a/daemon/monitor.go +++ b/daemon/monitor.go @@ -45,7 +45,7 @@ func (daemon *Daemon) StateChanged(id string, e libcontainerd.StateInfo) error { c.StreamConfig.Wait() c.Reset(false) - restart, wait, err := c.RestartManager().ShouldRestart(e.ExitCode, false, time.Since(c.StartedAt)) + restart, wait, err := c.RestartManager().ShouldRestart(e.ExitCode, c.HasBeenManuallyStopped, time.Since(c.StartedAt)) if err == nil && restart { c.RestartCount++ c.SetRestarting(platformConstructExitStatus(e)) @@ -54,7 +54,9 @@ func (daemon *Daemon) StateChanged(id string, e libcontainerd.StateInfo) error { defer autoRemove() } - daemon.updateHealthMonitor(c) + // cancel healthcheck here, they will be automatically + // restarted if/when the container is started again + daemon.stopHealthchecks(c) attributes := map[string]string{ "exitCode": strconv.Itoa(int(e.ExitCode)), }