docs: def serve(self, model_dir, environment):
          """Host a local endpoint using docker-compose.
          Args:
              primary_container (dict): dictionary containing the container runtime settings
                  for serving. Expected keys:
                  - 'ModelDataUrl' pointing to a file or s3:// location.
                  - 'Environment' a dictionary of environment variables to be passed to the hosting container.
  
          """
          logger.info("serving")
  
          self.container_root = self._create_tmp_folder()
          logger.info('creating hosting dir in {}'.format(self.container_root))
  
          volumes = self._prepare_serving_volumes(model_dir)
  
          # If the user script was passed as a file:// mount it to the container.
          if sagemaker.estimator.DIR_PARAM_NAME.upper() in environment:
              script_dir = environment[sagemaker.estimator.DIR_PARAM_NAME.upper()]
              parsed_uri = urlparse(script_dir)
              if parsed_uri.scheme == 'file':
                  volumes.append(_Volume(parsed_uri.path, '/opt/ml/code'))
                  # Update path to mount location
                  environment = environment.copy()
                  environment[sagemaker.estimator.DIR_PARAM_NAME.upper()] = '/opt/ml/code'
  
          if _ecr_login_if_needed(self.sagemaker_session.boto_session, self.image):
              _pull_image(self.image)
  
          self._generate_compose_file('serve',
                                      additional_env_vars=environment,
                                      additional_volumes=volumes)
          compose_command = self._compose()
          self.container = _HostingContainer(compose_command)
          self.container.start()