mirror of
https://github.com/moby/moby.git
synced 2022-11-09 12:21:53 -05:00
8fb5f4d5c9
Disable cri plugin by default in containerd and allows an option to enable the plugin. This only has an effect on containerd when supervised by dockerd. When containerd is managed outside of dockerd, the configuration is not effected. Signed-off-by: Derek McGowan <derek@mcgstyle.net>
66 lines
1.5 KiB
Go
66 lines
1.5 KiB
Go
package libcontainerd // import "github.com/docker/docker/libcontainerd"
|
|
|
|
import (
|
|
"os"
|
|
"path/filepath"
|
|
"syscall"
|
|
"time"
|
|
|
|
"github.com/containerd/containerd/defaults"
|
|
"github.com/docker/docker/pkg/system"
|
|
)
|
|
|
|
const (
|
|
sockFile = "docker-containerd.sock"
|
|
debugSockFile = "docker-containerd-debug.sock"
|
|
)
|
|
|
|
func (r *remote) setDefaults() {
|
|
if r.GRPC.Address == "" {
|
|
r.GRPC.Address = filepath.Join(r.stateDir, sockFile)
|
|
}
|
|
if r.GRPC.MaxRecvMsgSize == 0 {
|
|
r.GRPC.MaxRecvMsgSize = defaults.DefaultMaxRecvMsgSize
|
|
}
|
|
if r.GRPC.MaxSendMsgSize == 0 {
|
|
r.GRPC.MaxSendMsgSize = defaults.DefaultMaxSendMsgSize
|
|
}
|
|
if r.Debug.Address == "" {
|
|
r.Debug.Address = filepath.Join(r.stateDir, debugSockFile)
|
|
}
|
|
if r.OOMScore == 0 {
|
|
r.OOMScore = -999
|
|
}
|
|
|
|
for key, conf := range r.pluginConfs.Plugins {
|
|
if conf == nil {
|
|
r.DisabledPlugins = append(r.DisabledPlugins, key)
|
|
delete(r.pluginConfs.Plugins, key)
|
|
}
|
|
}
|
|
|
|
if r.snapshotter == "" {
|
|
r.snapshotter = "overlay"
|
|
}
|
|
}
|
|
|
|
func (r *remote) stopDaemon() {
|
|
// Ask the daemon to quit
|
|
syscall.Kill(r.daemonPid, syscall.SIGTERM)
|
|
// Wait up to 15secs for it to stop
|
|
for i := time.Duration(0); i < shutdownTimeout; i += time.Second {
|
|
if !system.IsProcessAlive(r.daemonPid) {
|
|
break
|
|
}
|
|
time.Sleep(time.Second)
|
|
}
|
|
|
|
if system.IsProcessAlive(r.daemonPid) {
|
|
r.logger.WithField("pid", r.daemonPid).Warn("daemon didn't stop within 15 secs, killing it")
|
|
syscall.Kill(r.daemonPid, syscall.SIGKILL)
|
|
}
|
|
}
|
|
|
|
func (r *remote) platformCleanup() {
|
|
os.Remove(filepath.Join(r.stateDir, sockFile))
|
|
}
|