Browse Source

Fix one-off commands for "restart: unless-stopped" (fixes #6302)

Signed-off-by: Sebastian Pipping <[email protected]>
Sebastian Pipping 7 years ago
parent
commit
6559af7660
2 changed files with 6 additions and 3 deletions
  1. 2 2
      compose/cli/main.py
  2. 4 1
      tests/unit/cli_test.py

+ 2 - 2
compose/cli/main.py

@@ -1288,8 +1288,8 @@ def build_container_options(options, detach, command):
             [""] if options['--entrypoint'] == '' else options['--entrypoint']
         )
 
-    if options['--rm']:
-        container_options['restart'] = None
+    # Ensure that run command remains one-off (issue #6302)
+    container_options['restart'] = None
 
     if options['--user']:
         container_options['user'] = options.get('--user')

+ 4 - 1
tests/unit/cli_test.py

@@ -171,7 +171,10 @@ class CLITestCase(unittest.TestCase):
             '--workdir': None,
         })
 
-        assert mock_client.create_host_config.call_args[1]['restart_policy']['Name'] == 'always'
+        # NOTE: The "run" command is supposed to be a one-off tool; therefore restart policy "no"
+        #       (the default) is enforced despite explicit wish for "always" in the project
+        #       configuration file
+        assert not mock_client.create_host_config.call_args[1].get('restart_policy')
 
         command = TopLevelCommand(project)
         command.run({