mirror of
https://github.com/docker/cli.git
synced 2026-09-26 17:30:51 -04:00
Make sure container start doesn't make the DNS fields nil.
Signed-off-by: David Calavera <david.calavera@gmail.com> Upstream-commit: d7117a1b713042096bd97815bbb9663a4a01c8af Component: engine
This commit is contained in:
@@ -166,22 +166,7 @@ func (container *Container) readHostConfig() error {
|
||||
return err
|
||||
}
|
||||
|
||||
// Make sure the dns fields are never nil.
|
||||
// New containers don't ever have those fields nil,
|
||||
// but pre created containers can still have those nil values.
|
||||
// See https://github.com/docker/docker/pull/17779
|
||||
// for a more detailed explanation on why we don't want that.
|
||||
if container.hostConfig.DNS == nil {
|
||||
container.hostConfig.DNS = make([]string, 0)
|
||||
}
|
||||
|
||||
if container.hostConfig.DNSSearch == nil {
|
||||
container.hostConfig.DNSSearch = make([]string, 0)
|
||||
}
|
||||
|
||||
if container.hostConfig.DNSOptions == nil {
|
||||
container.hostConfig.DNSOptions = make([]string, 0)
|
||||
}
|
||||
initDNSHostConfig(container)
|
||||
|
||||
return nil
|
||||
}
|
||||
@@ -543,3 +528,25 @@ func (container *Container) stopSignal() int {
|
||||
}
|
||||
return int(stopSignal)
|
||||
}
|
||||
|
||||
// initDNSHostConfig ensures that the dns fields are never nil.
|
||||
// New containers don't ever have those fields nil,
|
||||
// but pre created containers can still have those nil values.
|
||||
// The non-recommended host configuration in the start api can
|
||||
// make these fields nil again, this corrects that issue until
|
||||
// we remove that behavior for good.
|
||||
// See https://github.com/docker/docker/pull/17779
|
||||
// for a more detailed explanation on why we don't want that.
|
||||
func initDNSHostConfig(container *Container) {
|
||||
if container.hostConfig.DNS == nil {
|
||||
container.hostConfig.DNS = make([]string, 0)
|
||||
}
|
||||
|
||||
if container.hostConfig.DNSSearch == nil {
|
||||
container.hostConfig.DNSSearch = make([]string, 0)
|
||||
}
|
||||
|
||||
if container.hostConfig.DNSOptions == nil {
|
||||
container.hostConfig.DNSOptions = make([]string, 0)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -29,6 +29,7 @@ func (daemon *Daemon) ContainerStart(name string, hostConfig *runconfig.HostConf
|
||||
// This is kept for backward compatibility - hostconfig should be passed when
|
||||
// creating a container, not during start.
|
||||
if hostConfig != nil {
|
||||
logrus.Warn("DEPRECATED: Setting host configuration options when the container starts is deprecated and will be removed in Docker 1.12")
|
||||
container.Lock()
|
||||
if err := parseSecurityOpt(container, hostConfig); err != nil {
|
||||
container.Unlock()
|
||||
@@ -38,6 +39,7 @@ func (daemon *Daemon) ContainerStart(name string, hostConfig *runconfig.HostConf
|
||||
if err := daemon.setHostConfig(container, hostConfig); err != nil {
|
||||
return err
|
||||
}
|
||||
initDNSHostConfig(container)
|
||||
}
|
||||
} else {
|
||||
if hostConfig != nil {
|
||||
|
||||
Reference in New Issue
Block a user