mirror of
https://github.com/moby/moby.git
synced 2022-11-09 12:21:53 -05:00
Fix missing Init Binary in docker info output
- Moved DefaultInitBinary from daemon/daemon.go to daemon/config/config.go since it's a daemon config and is referred in config package files. - Added condition in GetInitPath to check for any explicitly configured DefaultInitBinary. If not, the default value of DefaultInitBinary is returned. - Changed all references of DefaultInitBinary to refer to the variable from new location. - Added TestCommonUnixGetInitPath to test for the various values of GetInitPath. Fixes #32314 Signed-off-by: Sunny Gogoi <indiasuny000@gmail.com>
This commit is contained in:
parent
b0831acb09
commit
17b1288760
6 changed files with 53 additions and 8 deletions
|
@ -41,6 +41,8 @@ const (
|
|||
DefaultNetworkMtu = 1500
|
||||
// DisableNetworkBridge is the default value of the option to disable network bridge
|
||||
DisableNetworkBridge = "none"
|
||||
// DefaultInitBinary is the name of the default init binary
|
||||
DefaultInitBinary = "docker-init"
|
||||
)
|
||||
|
||||
// flatOptions contains configuration keys
|
||||
|
|
|
@ -66,5 +66,8 @@ func (conf *Config) GetInitPath() string {
|
|||
if conf.InitPath != "" {
|
||||
return conf.InitPath
|
||||
}
|
||||
return conf.DefaultInitBinary
|
||||
if conf.DefaultInitBinary != "" {
|
||||
return conf.DefaultInitBinary
|
||||
}
|
||||
return DefaultInitBinary
|
||||
}
|
||||
|
|
|
@ -41,3 +41,44 @@ func TestCommonUnixValidateConfigurationErrors(t *testing.T) {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
func TestCommonUnixGetInitPath(t *testing.T) {
|
||||
testCases := []struct {
|
||||
config *Config
|
||||
expectedInitPath string
|
||||
}{
|
||||
{
|
||||
config: &Config{
|
||||
InitPath: "some-init-path",
|
||||
},
|
||||
expectedInitPath: "some-init-path",
|
||||
},
|
||||
{
|
||||
config: &Config{
|
||||
CommonUnixConfig: CommonUnixConfig{
|
||||
DefaultInitBinary: "foo-init-bin",
|
||||
},
|
||||
},
|
||||
expectedInitPath: "foo-init-bin",
|
||||
},
|
||||
{
|
||||
config: &Config{
|
||||
InitPath: "init-path-A",
|
||||
CommonUnixConfig: CommonUnixConfig{
|
||||
DefaultInitBinary: "init-path-B",
|
||||
},
|
||||
},
|
||||
expectedInitPath: "init-path-A",
|
||||
},
|
||||
{
|
||||
config: &Config{},
|
||||
expectedInitPath: "docker-init",
|
||||
},
|
||||
}
|
||||
for _, tc := range testCases {
|
||||
initPath := tc.config.GetInitPath()
|
||||
if initPath != tc.expectedInitPath {
|
||||
t.Fatalf("expected initPath to be %v, got %v", tc.expectedInitPath, initPath)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -65,9 +65,6 @@ var (
|
|||
// containerd if none is specified
|
||||
DefaultRuntimeBinary = "docker-runc"
|
||||
|
||||
// DefaultInitBinary is the name of the default init binary
|
||||
DefaultInitBinary = "docker-init"
|
||||
|
||||
errSystemNotSupported = errors.New("The Docker daemon is not supported on this platform.")
|
||||
)
|
||||
|
||||
|
|
|
@ -9,6 +9,7 @@ import (
|
|||
|
||||
"github.com/Sirupsen/logrus"
|
||||
"github.com/docker/docker/api/types"
|
||||
daemonconfig "github.com/docker/docker/daemon/config"
|
||||
"github.com/docker/docker/dockerversion"
|
||||
"github.com/docker/docker/pkg/sysinfo"
|
||||
"github.com/pkg/errors"
|
||||
|
@ -55,15 +56,15 @@ func (daemon *Daemon) FillPlatformInfo(v *types.Info, sysInfo *sysinfo.SysInfo)
|
|||
v.RuncCommit.ID = "N/A"
|
||||
}
|
||||
|
||||
if rv, err := exec.Command(DefaultInitBinary, "--version").Output(); err == nil {
|
||||
if rv, err := exec.Command(daemonconfig.DefaultInitBinary, "--version").Output(); err == nil {
|
||||
ver, err := parseInitVersion(string(rv))
|
||||
|
||||
if err != nil {
|
||||
logrus.Warnf("failed to retrieve %s version: %s", DefaultInitBinary, err)
|
||||
logrus.Warnf("failed to retrieve %s version: %s", daemonconfig.DefaultInitBinary, err)
|
||||
}
|
||||
v.InitCommit = ver
|
||||
} else {
|
||||
logrus.Warnf("failed to retrieve %s version: %s", DefaultInitBinary, err)
|
||||
logrus.Warnf("failed to retrieve %s version: %s", daemonconfig.DefaultInitBinary, err)
|
||||
v.InitCommit.ID = "N/A"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -15,6 +15,7 @@ import (
|
|||
containertypes "github.com/docker/docker/api/types/container"
|
||||
"github.com/docker/docker/container"
|
||||
"github.com/docker/docker/daemon/caps"
|
||||
daemonconfig "github.com/docker/docker/daemon/config"
|
||||
"github.com/docker/docker/oci"
|
||||
"github.com/docker/docker/pkg/idtools"
|
||||
"github.com/docker/docker/pkg/mount"
|
||||
|
@ -624,7 +625,7 @@ func (daemon *Daemon) populateCommonSpec(s *specs.Spec, c *container.Container)
|
|||
s.Process.Args = append([]string{"/dev/init", "--", c.Path}, c.Args...)
|
||||
var path string
|
||||
if daemon.configStore.InitPath == "" && c.HostConfig.InitPath == "" {
|
||||
path, err = exec.LookPath(DefaultInitBinary)
|
||||
path, err = exec.LookPath(daemonconfig.DefaultInitBinary)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue