From 0b89ae6f208eff3606854034a97bfa20d8ad15fd Mon Sep 17 00:00:00 2001 From: Joseph Page Date: Fri, 27 Mar 2015 11:31:43 +0100 Subject: [PATCH 1/2] [cli] run --rm overrides restart: always docker/compose#1013 Signed-off-by: Joseph Page --- compose/cli/main.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/compose/cli/main.py b/compose/cli/main.py index 95dfb6cbd..85e675568 100644 --- a/compose/cli/main.py +++ b/compose/cli/main.py @@ -325,6 +325,9 @@ class TopLevelCommand(Command): if options['--entrypoint']: container_options['entrypoint'] = options.get('--entrypoint') + if options['--rm']: + container_options['restart'] = None + if options['--user']: container_options['user'] = options.get('--user') From 0b48e137e898f55d395cd1a06d7d3a08db75c6d8 Mon Sep 17 00:00:00 2001 From: Joseph Page Date: Tue, 7 Apr 2015 10:11:36 +0200 Subject: [PATCH 2/2] add unit tests for run --rm with restart Signed-off-by: Joseph Page --- tests/unit/cli_test.py | 49 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) diff --git a/tests/unit/cli_test.py b/tests/unit/cli_test.py index fcb55a673..240069adb 100644 --- a/tests/unit/cli_test.py +++ b/tests/unit/cli_test.py @@ -134,6 +134,55 @@ class CLITestCase(unittest.TestCase): call_kwargs['environment'], {'FOO': 'ONE', 'BAR': 'NEW', 'OTHER': 'THREE'}) + def test_run_service_with_restart_always(self): + command = TopLevelCommand() + mock_client = mock.create_autospec(docker.Client) + mock_project = mock.Mock() + mock_project.get_service.return_value = Service( + 'service', + client=mock_client, + restart='always', + image='someimage') + command.run(mock_project, { + 'SERVICE': 'service', + 'COMMAND': None, + '-e': [], + '--user': None, + '--no-deps': None, + '--allow-insecure-ssl': None, + '-d': True, + '-T': None, + '--entrypoint': None, + '--service-ports': None, + '--rm': None, + }) + _, _, call_kwargs = mock_client.create_container.mock_calls[0] + self.assertEquals(call_kwargs['host_config']['RestartPolicy']['Name'], 'always') + + command = TopLevelCommand() + mock_client = mock.create_autospec(docker.Client) + mock_project = mock.Mock() + mock_project.get_service.return_value = Service( + 'service', + client=mock_client, + restart='always', + image='someimage') + command.run(mock_project, { + 'SERVICE': 'service', + 'COMMAND': None, + '-e': [], + '--user': None, + '--no-deps': None, + '--allow-insecure-ssl': None, + '-d': True, + '-T': None, + '--entrypoint': None, + '--service-ports': None, + '--rm': True, + }) + _, _, call_kwargs = mock_client.create_container.mock_calls[0] + self.assertFalse('RestartPolicy' in call_kwargs['host_config']) + def get_config_filename_for_files(filenames): project_dir = tempfile.mkdtemp()