Explorar o código

Merge pull request #4528 from shin-/4430-divergent-scale

Check for divergent containers when scaling up
Joffrey F %!s(int64=8) %!d(string=hai) anos
pai
achega
a953651597
Modificáronse 1 ficheiros con 13 adicións e 2 borrados
  1. 13 2
      compose/service.py

+ 13 - 2
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)