Skip to content

Commit

Permalink
Merge pull request #10369 from prezha/support-ancient-docker-versions
Browse files Browse the repository at this point in the history
support ancient versions of docker again (template parsing issue)
  • Loading branch information
medyagh authored Feb 5, 2021
2 parents 3f4ff5b + 5111173 commit 2c60c12
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 6 deletions.
6 changes: 5 additions & 1 deletion pkg/drivers/kic/oci/network_create.go
Original file line number Diff line number Diff line change
Expand Up @@ -172,8 +172,12 @@ type networkInspect struct {
}

var dockerInsepctGetter = func(name string) (*RunResult, error) {
cmd := exec.Command(Docker, "network", "inspect", name, "--format", `{"Name": "{{.Name}}","Driver": "{{.Driver}}","Subnet": "{{range .IPAM.Config}}{{.Subnet}}{{end}}","Gateway": "{{range .IPAM.Config}}{{.Gateway}}{{end}}","MTU": {{if (index .Options "com.docker.network.driver.mtu")}}{{(index .Options "com.docker.network.driver.mtu")}}{{else}}0{{end}},{{$first := true}} "ContainerIPs": [{{range $k,$v := .Containers }}{{if $first}}{{$first = false}}{{else}}, {{end}}"{{$v.IPv4Address}}"{{end}}]}`)
// hack -- 'support ancient versions of docker again (template parsing issue) #10362' and resolve 'Template parsing error: template: :1: unexpected "=" in operand' / 'exit status 64'
// note: docker v18.09.7 and older use go v1.10.8 and older, whereas support for '=' operator in go templates came in go v1.11
cmd := exec.Command(Docker, "network", "inspect", name, "--format", `{"Name": "{{.Name}}","Driver": "{{.Driver}}","Subnet": "{{range .IPAM.Config}}{{.Subnet}}{{end}}","Gateway": "{{range .IPAM.Config}}{{.Gateway}}{{end}}","MTU": {{if (index .Options "com.docker.network.driver.mtu")}}{{(index .Options "com.docker.network.driver.mtu")}}{{else}}0{{end}}, "ContainerIPs": [{{range $k,$v := .Containers }}"{{$v.IPv4Address}}",{{end}}]}`)
rr, err := runCmd(cmd)
// remove extra ',' after the last element in the ContainerIPs slice
rr.Stdout = *bytes.NewBuffer(bytes.ReplaceAll(rr.Stdout.Bytes(), []byte(",]"), []byte("]")))
return rr, err
}

Expand Down
8 changes: 3 additions & 5 deletions pkg/minikube/registry/drvs/docker/docker.go
Original file line number Diff line number Diff line change
Expand Up @@ -115,7 +115,7 @@ func status() registry.State {
}

klog.Infof("docker version: %s", o)
if s := checkDockerVersion(string(o)); s.Error != nil {
if s := checkDockerVersion(strings.TrimSpace(string(o))); s.Error != nil { // remove '\n' from o at the end
return s
}

Expand Down Expand Up @@ -188,12 +188,10 @@ func checkDockerVersion(o string) registry.State {
return registry.State{Installed: true, Healthy: true, Error: nil}
} else if k < minDockerVersion[i] {
return registry.State{
Reason: "PROVIDER_DOCKER_VERSION_LOW",
Error: oci.ErrMinDockerVersion,
Installed: true,
Healthy: false,
Healthy: true,
NeedsImprovement: true,
Fix: fmt.Sprintf("Upgrade %s to a newer version (Minimum supproted version is %2d.%2d.%d)", driver.FullName(driver.Docker), minDockerVersion[0], minDockerVersion[1], minDockerVersion[2]),
Fix: fmt.Sprintf("Upgrade %s to a newer version (Minimum recommended version is %2d.%02d.%d)", driver.FullName(driver.Docker), minDockerVersion[0], minDockerVersion[1], minDockerVersion[2]),
Doc: docURL + "#requirements"}
}
}
Expand Down

0 comments on commit 2c60c12

Please sign in to comment.