- 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>
... | ... |
@@ -41,6 +41,8 @@ const ( |
41 | 41 |
DefaultNetworkMtu = 1500 |
42 | 42 |
// DisableNetworkBridge is the default value of the option to disable network bridge |
43 | 43 |
DisableNetworkBridge = "none" |
44 |
+ // DefaultInitBinary is the name of the default init binary |
|
45 |
+ DefaultInitBinary = "docker-init" |
|
44 | 46 |
) |
45 | 47 |
|
46 | 48 |
// flatOptions contains configuration keys |
... | ... |
@@ -41,3 +41,44 @@ func TestCommonUnixValidateConfigurationErrors(t *testing.T) { |
41 | 41 |
} |
42 | 42 |
} |
43 | 43 |
} |
44 |
+ |
|
45 |
+func TestCommonUnixGetInitPath(t *testing.T) { |
|
46 |
+ testCases := []struct { |
|
47 |
+ config *Config |
|
48 |
+ expectedInitPath string |
|
49 |
+ }{ |
|
50 |
+ { |
|
51 |
+ config: &Config{ |
|
52 |
+ InitPath: "some-init-path", |
|
53 |
+ }, |
|
54 |
+ expectedInitPath: "some-init-path", |
|
55 |
+ }, |
|
56 |
+ { |
|
57 |
+ config: &Config{ |
|
58 |
+ CommonUnixConfig: CommonUnixConfig{ |
|
59 |
+ DefaultInitBinary: "foo-init-bin", |
|
60 |
+ }, |
|
61 |
+ }, |
|
62 |
+ expectedInitPath: "foo-init-bin", |
|
63 |
+ }, |
|
64 |
+ { |
|
65 |
+ config: &Config{ |
|
66 |
+ InitPath: "init-path-A", |
|
67 |
+ CommonUnixConfig: CommonUnixConfig{ |
|
68 |
+ DefaultInitBinary: "init-path-B", |
|
69 |
+ }, |
|
70 |
+ }, |
|
71 |
+ expectedInitPath: "init-path-A", |
|
72 |
+ }, |
|
73 |
+ { |
|
74 |
+ config: &Config{}, |
|
75 |
+ expectedInitPath: "docker-init", |
|
76 |
+ }, |
|
77 |
+ } |
|
78 |
+ for _, tc := range testCases { |
|
79 |
+ initPath := tc.config.GetInitPath() |
|
80 |
+ if initPath != tc.expectedInitPath { |
|
81 |
+ t.Fatalf("expected initPath to be %v, got %v", tc.expectedInitPath, initPath) |
|
82 |
+ } |
|
83 |
+ } |
|
84 |
+} |
... | ... |
@@ -65,9 +65,6 @@ var ( |
65 | 65 |
// containerd if none is specified |
66 | 66 |
DefaultRuntimeBinary = "docker-runc" |
67 | 67 |
|
68 |
- // DefaultInitBinary is the name of the default init binary |
|
69 |
- DefaultInitBinary = "docker-init" |
|
70 |
- |
|
71 | 68 |
errSystemNotSupported = errors.New("The Docker daemon is not supported on this platform.") |
72 | 69 |
) |
73 | 70 |
|
... | ... |
@@ -9,6 +9,7 @@ import ( |
9 | 9 |
|
10 | 10 |
"github.com/Sirupsen/logrus" |
11 | 11 |
"github.com/docker/docker/api/types" |
12 |
+ daemonconfig "github.com/docker/docker/daemon/config" |
|
12 | 13 |
"github.com/docker/docker/dockerversion" |
13 | 14 |
"github.com/docker/docker/pkg/sysinfo" |
14 | 15 |
"github.com/pkg/errors" |
... | ... |
@@ -55,15 +56,15 @@ func (daemon *Daemon) FillPlatformInfo(v *types.Info, sysInfo *sysinfo.SysInfo) |
55 | 55 |
v.RuncCommit.ID = "N/A" |
56 | 56 |
} |
57 | 57 |
|
58 |
- if rv, err := exec.Command(DefaultInitBinary, "--version").Output(); err == nil { |
|
58 |
+ if rv, err := exec.Command(daemonconfig.DefaultInitBinary, "--version").Output(); err == nil { |
|
59 | 59 |
ver, err := parseInitVersion(string(rv)) |
60 | 60 |
|
61 | 61 |
if err != nil { |
62 |
- logrus.Warnf("failed to retrieve %s version: %s", DefaultInitBinary, err) |
|
62 |
+ logrus.Warnf("failed to retrieve %s version: %s", daemonconfig.DefaultInitBinary, err) |
|
63 | 63 |
} |
64 | 64 |
v.InitCommit = ver |
65 | 65 |
} else { |
66 |
- logrus.Warnf("failed to retrieve %s version: %s", DefaultInitBinary, err) |
|
66 |
+ logrus.Warnf("failed to retrieve %s version: %s", daemonconfig.DefaultInitBinary, err) |
|
67 | 67 |
v.InitCommit.ID = "N/A" |
68 | 68 |
} |
69 | 69 |
} |
... | ... |
@@ -15,6 +15,7 @@ import ( |
15 | 15 |
containertypes "github.com/docker/docker/api/types/container" |
16 | 16 |
"github.com/docker/docker/container" |
17 | 17 |
"github.com/docker/docker/daemon/caps" |
18 |
+ daemonconfig "github.com/docker/docker/daemon/config" |
|
18 | 19 |
"github.com/docker/docker/oci" |
19 | 20 |
"github.com/docker/docker/pkg/idtools" |
20 | 21 |
"github.com/docker/docker/pkg/mount" |
... | ... |
@@ -624,7 +625,7 @@ func (daemon *Daemon) populateCommonSpec(s *specs.Spec, c *container.Container) |
624 | 624 |
s.Process.Args = append([]string{"/dev/init", "--", c.Path}, c.Args...) |
625 | 625 |
var path string |
626 | 626 |
if daemon.configStore.InitPath == "" && c.HostConfig.InitPath == "" { |
627 |
- path, err = exec.LookPath(DefaultInitBinary) |
|
627 |
+ path, err = exec.LookPath(daemonconfig.DefaultInitBinary) |
|
628 | 628 |
if err != nil { |
629 | 629 |
return err |
630 | 630 |
} |