mirror of https://github.com/docker/compose.git
fix(containers): fix sorting logic by adding secondary sorting for one-off containers
Signed-off-by: Suleiman Dibirov <idsulik@gmail.com>
This commit is contained in:
parent
06bf339a42
commit
4f9db4d3e6
|
@ -93,10 +93,19 @@ func (s *composeService) getSpecifiedContainer(ctx context.Context, projectName
|
|||
}
|
||||
return moby.Container{}, fmt.Errorf("service %q is not running", serviceName)
|
||||
}
|
||||
|
||||
// Sort by container number first, then put one-off containers at the end
|
||||
sort.Slice(containers, func(i, j int) bool {
|
||||
x, _ := strconv.Atoi(containers[i].Labels[api.ContainerNumberLabel])
|
||||
y, _ := strconv.Atoi(containers[j].Labels[api.ContainerNumberLabel])
|
||||
return x < y
|
||||
numberLabelX, _ := strconv.Atoi(containers[i].Labels[api.ContainerNumberLabel])
|
||||
numberLabelY, _ := strconv.Atoi(containers[j].Labels[api.ContainerNumberLabel])
|
||||
IsOneOffLabelTrueX := containers[i].Labels[api.OneoffLabel] == "True"
|
||||
IsOneOffLabelTrueY := containers[j].Labels[api.OneoffLabel] == "True"
|
||||
|
||||
if numberLabelX == numberLabelY {
|
||||
return !IsOneOffLabelTrueX && IsOneOffLabelTrueY
|
||||
}
|
||||
|
||||
return numberLabelX < numberLabelY
|
||||
})
|
||||
container := containers[0]
|
||||
return container, nil
|
||||
|
|
Loading…
Reference in New Issue