code: def run_job(
      self,
      run: Run,
      job: Job,
      instance_offer: InstanceOfferWithAvailability,
      project_ssh_public_key: str,
      project_ssh_private_key: str,
  ) -> LaunchedInstanceInfo:
      authorized_keys = "\\n".join(
          [
              run.run_spec.ssh_key_pub.strip(),
              project_ssh_public_key.strip(),
          ]
      )
      logger.info(
          "Running job in LocalBackend. To start processing, run: `"
          f"DSTACK_BACKEND=local "
          "DSTACK_RUNNER_LOG_LEVEL=6 "
          f"DSTACK_RUNNER_VERSION={get_dstack_runner_version()} "
          f"DSTACK_IMAGE_NAME={job.job_spec.image_name} "
          f'DSTACK_PUBLIC_SSH_KEY="{authorized_keys}" ./shim --dev docker --keep-container`',
      )
      return LaunchedInstanceInfo(
          instance_id="local",
          ip_address="127.0.0.1",
          region="",
          username="root",
          ssh_port=10022,
          dockerized=False,
          backend_data=None,
      )
  
file_path: dstack/src/dstack/_internal/core/backends/local/compute.py
imports: from abc import ABC, abstractmethod
  from typing import List, Optional
  from dstack._internal.core.backends.base.compute import Compute, get_dstack_runner_version
  from dstack._internal.core.models.backends.base import BackendType
  from dstack._internal.core.models.instances import InstanceAvailability, InstanceOfferWithAvailability, InstanceState, InstanceType, LaunchedInstanceInfo, Resources
  from dstack._internal.core.models.runs import Job, Requirements, Run
  from dstack._internal.utils.logging import get_logger
label_desc: Use image node_id 4 for calling the LocalCompute obj's underlying member method code with example usage: obj.run_job(run, job, instance_offer, project_ssh_public_key, project_ssh_private_key) and returns: LaunchedInstanceInfo