From 3621787a74773cf749bb606e79108a42c2167151 Mon Sep 17 00:00:00 2001 From: Joffrey F Date: Wed, 22 Feb 2017 15:21:03 -0800 Subject: [PATCH] Check for divergent containers when scaling up Signed-off-by: Joffrey F --- compose/service.py | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/compose/service.py b/compose/service.py index 9f2fc68b4..fb51ef097 100644 --- a/compose/service.py +++ b/compose/service.py @@ -226,9 +226,20 @@ class Service(object): if num_running != len(all_containers): # we have some stopped containers, let's start them up again + stopped_containers = [ + c for c in all_containers if not c.is_running + ] + + # Remove containers that have diverged + divergent_containers = [ + c for c in stopped_containers if self._containers_have_diverged([c]) + ] stopped_containers = sorted( - (c for c in all_containers if not c.is_running), - key=attrgetter('number')) + set(stopped_containers) - set(divergent_containers), + key=attrgetter('number') + ) + for c in divergent_containers: + c.remove() num_stopped = len(stopped_containers)