summaryrefslogtreecommitdiffstats
path: root/dovetail/container.py
diff options
context:
space:
mode:
Diffstat (limited to 'dovetail/container.py')
-rw-r--r--dovetail/container.py14
1 files changed, 11 insertions, 3 deletions
diff --git a/dovetail/container.py b/dovetail/container.py
index d44035cd..43ecf41b 100644
--- a/dovetail/container.py
+++ b/dovetail/container.py
@@ -70,6 +70,9 @@ class Container(object):
project_cfg = dovetail_config[self.valid_type]
opts = dt_utils.get_value_from_dict('opts', project_cfg)
+ shell = dt_utils.get_value_from_dict('shell', project_cfg)
+ if not shell:
+ return None
envs = dt_utils.get_value_from_dict('envs', project_cfg)
volumes_list = dt_utils.get_value_from_dict('volumes', project_cfg)
opts = ' ' if not opts else opts
@@ -91,7 +94,7 @@ class Container(object):
return None
cmd = 'sudo docker run {opts} {envs} {volumes} {config} ' \
- '{hosts_config} {docker_image} /bin/bash'.format(**locals())
+ '{hosts_config} {docker_image} {shell}'.format(**locals())
ret, container_id = dt_utils.exec_cmd(cmd, self.logger)
if ret != 0:
return None
@@ -179,8 +182,13 @@ class Container(object):
def exec_cmd(self, sub_cmd, exit_on_error=False):
if sub_cmd == "":
return (1, 'sub_cmd is empty')
- cmd = 'sudo docker exec {} /bin/bash -c "{}"'.format(self.container_id,
- sub_cmd)
+ dovetail_config = dt_cfg.dovetail_config
+ project_cfg = dovetail_config[self.valid_type]
+ shell = dt_utils.get_value_from_dict('shell', project_cfg)
+ if not shell:
+ return (1, 'shell is empty')
+ cmd = 'sudo docker exec {} {} -c "{}"'.format(self.container_id, shell,
+ sub_cmd)
return dt_utils.exec_cmd(cmd, self.logger, exit_on_error)
def copy_file(self, src_path, dest_path, exit_on_error=False):