If docker /info does not include ServerVersion, fallback to /version

This commit is contained in:
Tim St. Clair 2016-04-08 16:56:17 -07:00
parent b553e02476
commit b768a9d1dc

View File

@ -439,10 +439,19 @@ func ValidateInfo() (*docker.DockerInfo, error) {
return nil, fmt.Errorf("failed to detect Docker info: %v", err)
}
// Fall back to version API if ServerVersion is not set in info.
if dockerInfo.ServerVersion == "" {
version, err := client.Version()
if err != nil {
return nil, fmt.Errorf("unable to get docker version: %v", err)
}
dockerInfo.ServerVersion = version.Get("Version")
}
version, err := parseDockerVersion(dockerInfo.ServerVersion)
if err != nil {
return nil, err
}
if version[0] < 1 {
return nil, fmt.Errorf("cAdvisor requires docker version %v or above but we have found version %v reported as %q", []int{1, 0, 0}, version, dockerInfo.ServerVersion)
}