diff --git a/client/driver/docker.go b/client/driver/docker.go index 7cb9fb3e6..843e3d67c 100644 --- a/client/driver/docker.go +++ b/client/driver/docker.go @@ -207,28 +207,26 @@ func sliceMergeUlimit(ulimitsRaw map[string]string) ([]docker.ULimit, error) { var ulimits []docker.ULimit for name, ulimitRaw := range ulimitsRaw { - splitted := strings.SplitN(ulimitRaw, ":", 2) + // hard limit is optional + if strings.Contains(ulimitRaw, ":") == false { + ulimitRaw = ulimitRaw + ":" + ulimitRaw + } + splitted := strings.SplitN(ulimitRaw, ":", 2) soft, err := strconv.Atoi(splitted[0]) if err != nil { return []docker.ULimit{}, fmt.Errorf("Malformed ulimit %v: %v", name, ulimitRaw) } + hard, err := strconv.Atoi(splitted[1]) + if err != nil { + return []docker.ULimit{}, fmt.Errorf("Malformed ulimit %v: %v", name, ulimitRaw) + } ulimit := docker.ULimit{ Name: name, Soft: int64(soft), - Hard: int64(soft), // default: can be override + Hard: int64(hard), } - - // hard limit is optional - if len(splitted) == 2 { - if hard, err := strconv.Atoi(splitted[1]); err != nil { - return []docker.ULimit{}, fmt.Errorf("Malformed ulimit %v: %v", name, ulimitRaw) - } else { - ulimit.Hard = int64(hard) - } - } - ulimits = append(ulimits, ulimit) } return ulimits, nil