1
0
Эх сурвалжийг харах

Stop and remove still-running one-off containers in 'down'

Signed-off-by: Aanand Prasad <[email protected]>
Aanand Prasad 9 жил өмнө
parent
commit
2bf5e46857

+ 3 - 3
compose/project.py

@@ -239,8 +239,8 @@ class Project(object):
 
         return containers
 
-    def stop(self, service_names=None, **options):
-        containers = self.containers(service_names)
+    def stop(self, service_names=None, one_off=OneOffFilter.exclude, **options):
+        containers = self.containers(service_names, one_off=one_off)
 
         def get_deps(container):
             # actually returning inversed dependencies
@@ -274,7 +274,7 @@ class Project(object):
         ), options)
 
     def down(self, remove_image_type, include_volumes, remove_orphans=False):
-        self.stop()
+        self.stop(one_off=OneOffFilter.include)
         self.find_orphan_containers(remove_orphans)
         self.remove_stopped(v=include_volumes, one_off=OneOffFilter.include)
 

+ 4 - 1
tests/acceptance/cli_test.py

@@ -371,14 +371,17 @@ class CLITestCase(DockerClientTestCase):
         wait_on_condition(ContainerCountCondition(self.project, 2))
 
         self.dispatch(['run', 'web', 'true'])
-        assert len(self.project.containers(one_off=OneOffFilter.only, stopped=True)) == 1
+        self.dispatch(['run', '-d', 'web', 'tail', '-f', '/dev/null'])
+        assert len(self.project.containers(one_off=OneOffFilter.only, stopped=True)) == 2
 
         result = self.dispatch(['down', '--rmi=local', '--volumes'])
         assert 'Stopping v2full_web_1' in result.stderr
         assert 'Stopping v2full_other_1' in result.stderr
+        assert 'Stopping v2full_web_run_2' in result.stderr
         assert 'Removing v2full_web_1' in result.stderr
         assert 'Removing v2full_other_1' in result.stderr
         assert 'Removing v2full_web_run_1' in result.stderr
+        assert 'Removing v2full_web_run_2' in result.stderr
         assert 'Removing volume v2full_data' in result.stderr
         assert 'Removing image v2full_web' in result.stderr
         assert 'Removing image busybox' not in result.stderr