diff --git a/cirque/home/home.py b/cirque/home/home.py index f347426..5a771b7 100644 --- a/cirque/home/home.py +++ b/cirque/home/home.py @@ -122,7 +122,7 @@ def add_device(self, device_config): device_node = WiFiAPNode(self.docker_client, base_image=base_image) else: device_node = DockerNode( - self.docker_client, device_type, capabilities, base_image=base_image) + self.docker_client, device_type, capabilities, entrypoint=device_config.get('entrypoint', None), base_image=base_image) device_node.run() if device_node.id is not None: self.home['devices'][device_node.id] = device_node diff --git a/cirque/nodes/dockernode.py b/cirque/nodes/dockernode.py index 747f18e..426408a 100644 --- a/cirque/nodes/dockernode.py +++ b/cirque/nodes/dockernode.py @@ -25,7 +25,8 @@ def __init__(self, docker_client, node_type, capabilities=None, - base_image=None): + base_image=None, + entrypoint=None): self._client = docker_client self.node_type = node_type if base_image: @@ -34,6 +35,7 @@ def __init__(self, self.image_name = node_type self.container = None self.capabilities = [] if capabilities is None else capabilities + self.entrypoint = entrypoint self.logger = CirqueLog.get_cirque_logger(self.__class__.__name__) self.logger.info('Capabilites: {}'.format( [c.name for c in self.capabilities])) @@ -60,6 +62,8 @@ def merge_capapblity_arg(arg0, arg1): capability_run_args = reduce(merge_capapblity_arg, capability_run_args, {'cap_add': ['SYS_TIME']}) kwargs.update(capability_run_args) + if self.entrypoint is not None: + kwargs['entrypoint'] = self.entrypoint self.container = self._client.containers.run( self.image_name, detach=True, **kwargs) self.logger.info('starting container with image {} args={}'.format(