diff --git a/openhands/runtime/builder/docker.py b/openhands/runtime/builder/docker.py index e0fc5785dd..729955108e 100644 --- a/openhands/runtime/builder/docker.py +++ b/openhands/runtime/builder/docker.py @@ -60,7 +60,7 @@ class DockerRuntimeBuilder(RuntimeBuilder): target_image_tag = tags[1].split(':')[1] if len(tags) > 1 else None # Check if the image exists and pull if necessary - self.image_exists(target_image_repo) + self.image_exists(target_image_hash_name) buildx_cmd = [ 'docker', @@ -186,9 +186,7 @@ class DockerRuntimeBuilder(RuntimeBuilder): return True except docker.errors.ImageNotFound: if not pull_from_repo: - logger.debug( - f'Image {image_name} not found locally' - ) + logger.debug(f'Image {image_name} not found locally') return False try: logger.debug( @@ -197,8 +195,15 @@ class DockerRuntimeBuilder(RuntimeBuilder): layers: dict[str, dict[str, str]] = {} previous_layer_count = 0 + + if ':' in image_name: + image_repo, image_tag = image_name.split(':', 1) + else: + image_repo = image_name + image_tag = None + for line in self.docker_client.api.pull( - image_name, stream=True, decode=True + image_repo, tag=image_tag, stream=True, decode=True ): self._output_build_progress(line, layers, previous_layer_count) previous_layer_count = len(layers)