code: def create_image(self, df_dir_path, image, use_cache=False):
          
          logger.debug("creating build image: df_dir_path = '%s', image = '%s'", df_dir_path, image)
  
          if not os.path.isdir(df_dir_path):
              raise RuntimeError("Directory '%s' does not exist." % df_dir_path)
  
          tmpdir = tempfile.mkdtemp()
          df_tmpdir = os.path.join(tmpdir, 'df-%s' % uuid.uuid4())
          git_tmpdir = os.path.join(tmpdir, 'git-%s' % uuid.uuid4())
          os.mkdir(df_tmpdir)
          logger.debug("tmp dir with dockerfile '%s' created", df_tmpdir)
          os.mkdir(git_tmpdir)
          logger.debug("tmp dir with atomic-reactor '%s' created", git_tmpdir)
          try:
              for f in glob(os.path.join(df_dir_path, '*')):
                  shutil.copy(f, df_tmpdir)
                  logger.debug("cp '%s' -> '%s'", f, df_tmpdir)
              logger.debug("df dir: %s", os.listdir(df_tmpdir))
              reactor_tarball = self.get_reactor_tarball_path(tmpdir=git_tmpdir)
              reactor_tb_path = os.path.join(df_tmpdir, DOCKERFILE_REACTOR_TARBALL_NAME)
              shutil.copy(reactor_tarball, reactor_tb_path)
  
              image_name = ImageName.parse(image)
              logs_gen = self.tasker.build_image_from_path(df_tmpdir, image_name,
                                                           use_cache=use_cache)
              wait_for_command(logs_gen)
          finally:
              shutil.rmtree(tmpdir)
docs: create image: get atomic-reactor sdist tarball, build image and tag it
  
          :param df_path:
          :param image:
          :return: