// These two functions are OS specific (for now at least) func updateHostConfig(hc *dockercontainer.HostConfig, opts *kubecontainer.RunContainerOptions) { // There is no /etc/resolv.conf in Windows, DNS and DNSSearch options would have to be passed to Docker runtime instead hc.DNS = opts.DNS hc.DNSSearch = opts.DNSSearch // MemorySwap == -1 is not currently supported in Docker 1.14 on Windows // https://github.com/docker/docker/blob/master/daemon/daemon_windows.go#L175 hc.Resources.MemorySwap = 0 }
func (l *LocalCluster) createRoach(i int, dns, vols *Container, cmd ...string) *Container { l.panicOnStop() hostConfig := container.HostConfig{ PublishAllPorts: true, } if dns != nil { ci, err := dns.Inspect() maybePanic(err) hostConfig.DNS = append(hostConfig.DNS, ci.NetworkSettings.IPAddress) } if vols != nil { hostConfig.VolumesFrom = append(hostConfig.VolumesFrom, vols.id) } var hostname string if i >= 0 { hostname = fmt.Sprintf("roach%d", i) } var entrypoint []string if *cockroachImage == builderImage { entrypoint = append(entrypoint, "/"+filepath.Base(*cockroachBinary)) } else if *cockroachEntry != "" { entrypoint = append(entrypoint, *cockroachEntry) } c, err := createContainer( l, container.Config{ Hostname: hostname, Domainname: domain, Image: *cockroachImage, ExposedPorts: map[nat.Port]struct{}{ cockroachTCP: {}, pgTCP: {}, }, Entrypoint: strslice.New(entrypoint...), Cmd: strslice.New(cmd...), Labels: map[string]string{ // Allow for `docker ps --filter label=Hostname=roach0` or `--filter label=Roach`. "Hostname": hostname, "Roach": "", }, }, hostConfig, nodeStr(i), ) maybePanic(err) return c }