8000 configure docker-init binary path by runcom · Pull Request #26941 · moby/moby · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

configure docker-init binary path #26941

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Sep 28, 2016
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions api/types/container/host_config.go
Original file line number Diff line number Diff line change
Expand Up @@ -324,4 +324,7 @@ type HostConfig struct {

// Run a custom init inside the container, if null, use the daemon's configured settings
Init *bool `json:",omitempty"`

// Custom init path
InitPath string `json:",omitempty"`
}
2 changes: 2 additions & 0 deletions daemon/config_unix.go
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@ type Config struct {
DefaultRuntime string `json:"default-runtime,omitempty"`
OOMScoreAdjust int `json:"oom-score-adjust,omitempty"`
Init bool `json:"init,omitempty"`
InitPath string `json:"init-path,omitempty"`
}

// bridgeConfig stores all the bridge driver specific
Expand Down Expand Up @@ -93,6 +94,7 @@ func (config *Config) InstallFlags(flags *pflag.FlagSet) {
flags.StringVar(&config.DefaultRuntime, "default-runtime", stockRuntimeName, "Default OCI runtime for containers")
flags.IntVar(&config.OOMScoreAdjust, "oom-score-adjust", -500, "Set the oom_score_adj for the daemon")
flags.BoolVar(&config.Init, "init", false, "Run an init in the container to forward signals and reap processes")
flags.StringVar(&config.InitPath, "init-path", "", "Path to the docker-init binary")

config.attachExperimentalFlags(flags)
}
Expand Down
15 changes: 12 additions & 3 deletions daemon/oci_linux.go
Original file line number Diff line number Diff line change
Expand Up @@ -594,9 +594,18 @@ func (daemon *Daemon) populateCommonSpec(s *specs.Spec, c *container.Container)
if (c.HostConfig.Init != nil && *c.HostConfig.Init) ||
(c.HostConfig.Init == nil && daemon.configStore.Init) {
s.Process.Args = append([]string{"/dev/init", c.Path}, c.Args...)
path, err := exec.LookPath("docker-init")
if err != nil {
return err
var path string
if daemon.configStore.InitPath == "" && c.HostConfig.InitPath == "" {
path, err = exec.LookPath("docker-init")
if err != nil {
return err
}
}
if daemon.configStore.InitPath != "" {
path = daemon.configStore.InitPath
}
if c.HostConfig.InitPath != "" {
path = c.HostConfig.InitPath
}
s.Mounts = append(s.Mounts, specs.Mount{
Destination: "/dev/init",
Expand Down
2 changes: 2 additions & 0 deletions docs/reference/commandline/dockerd.md
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,7 @@ Options:
--help Print usage
--icc=true Enable inter-container communication
--init Run an init inside containers to forward signals and reap processes
--init-path Path to the docker-init binary
--insecure-registry=[] Enable insecure registry communication
--ip=0.0.0.0 Default IP when binding container ports
--ip-forward=true Enable net.ipv4.ip_forward
Expand Down Expand Up @@ -1142,6 +1143,7 @@ This is a full example of the allowed configuration options on Linux:
"cgroup-parent": "",
"default-ulimits": {},
"init": false,
"init-path": "/usr/libexec/docker-init",
"ipv6": false,
"iptables": false,
"ip-forward": false,
Expand Down
4 changes: 4 additions & 0 deletions man/dockerd.8.md
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ dockerd - Enable daemon mode
[**--help**]
[**--icc**[=*true*]]
[**--init**[=*false*]]
[**--init-path**[=*""*]]
[**--insecure-registry**[=*[]*]]
[**--ip**[=*0.0.0.0*]]
[**--ip-forward**[=*true*]]
Expand Down Expand Up @@ -170,6 +171,9 @@ unix://[/path/to/socket] to use.
**--init**
Run an init process inside containers for signal forwarding and process reaping.

**--init-path**
Path to the docker-init binary.

**--insecure-registry**=[]
Enable insecure registry communication, i.e., enable un-encrypted and/or untrusted communication.

Expand Down
2 changes: 2 additions & 0 deletions runconfig/opts/parse.go
Original file line number Diff line number Diff line change
Expand Up @@ -104,6 +104,7 @@ type ContainerOptions struct {
runtime string
autoRemove bool
init bool
initPath string

Image string
Args []string
Expand Down Expand Up @@ -246,6 +247,7 @@ func AddFlags(flags *pflag.FlagSet) *ContainerOptions {
flags.StringVar(&copts.runtime, "runtime", "", "Runtime to use for this container")

flags.BoolVar(&copts.init, "init", false, "Run an init inside the container that forwards signals and reaps processes")
flags.StringVar(&copts.initPath, "init-path", "", "Path to the docker-init binary")
return copts
}

Expand Down
0