github.com/adityamillind98/moby@v23.0.0-rc.4+incompatible/daemon/reload_unix.go (about)

     1  //go:build linux || freebsd
     2  // +build linux freebsd
     3  
     4  package daemon // import "github.com/docker/docker/daemon"
     5  
     6  import (
     7  	"bytes"
     8  	"strconv"
     9  
    10  	"github.com/docker/docker/api/types"
    11  	"github.com/docker/docker/daemon/config"
    12  )
    13  
    14  // reloadPlatform updates configuration with platform specific options
    15  // and updates the passed attributes
    16  func (daemon *Daemon) reloadPlatform(conf *config.Config, attributes map[string]string) error {
    17  	if err := conf.ValidatePlatformConfig(); err != nil {
    18  		return err
    19  	}
    20  
    21  	if conf.IsValueSet("runtimes") {
    22  		// Always set the default one
    23  		conf.Runtimes[config.StockRuntimeName] = types.Runtime{Path: config.DefaultRuntimeBinary}
    24  		if err := daemon.initRuntimes(conf.Runtimes); err != nil {
    25  			return err
    26  		}
    27  		daemon.configStore.Runtimes = conf.Runtimes
    28  	}
    29  
    30  	if conf.DefaultRuntime != "" {
    31  		daemon.configStore.DefaultRuntime = conf.DefaultRuntime
    32  	}
    33  
    34  	if conf.IsValueSet("default-shm-size") {
    35  		daemon.configStore.ShmSize = conf.ShmSize
    36  	}
    37  
    38  	if conf.CgroupNamespaceMode != "" {
    39  		daemon.configStore.CgroupNamespaceMode = conf.CgroupNamespaceMode
    40  	}
    41  
    42  	if conf.IpcMode != "" {
    43  		daemon.configStore.IpcMode = conf.IpcMode
    44  	}
    45  
    46  	// Update attributes
    47  	var runtimeList bytes.Buffer
    48  	for name, rt := range daemon.configStore.Runtimes {
    49  		if runtimeList.Len() > 0 {
    50  			runtimeList.WriteRune(' ')
    51  		}
    52  		runtimeList.WriteString(name + ":" + rt.Path)
    53  	}
    54  
    55  	attributes["runtimes"] = runtimeList.String()
    56  	attributes["default-runtime"] = daemon.configStore.DefaultRuntime
    57  	attributes["default-shm-size"] = strconv.FormatInt(int64(daemon.configStore.ShmSize), 10)
    58  	attributes["default-ipc-mode"] = daemon.configStore.IpcMode
    59  	attributes["default-cgroupns-mode"] = daemon.configStore.CgroupNamespaceMode
    60  
    61  	return nil
    62  }