Skip to content

Commit 00fc41f

Browse files
committed
default to first architecture
1 parent 2f60e7b commit 00fc41f

File tree

1 file changed

+22
-5
lines changed

1 file changed

+22
-5
lines changed

services/director/src/simcore_service_director/registry_proxy.py

Lines changed: 22 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -413,12 +413,29 @@ async def get_image_labels(
413413
media_type
414414
== "application/vnd.docker.distribution.manifest.list.v2+json"
415415
):
416-
raise DockerRegistryUnsupportedManifestSchemaVersionError(
417-
version=schema_version,
418-
service_name=image,
419-
service_tag=tag,
420-
reason="Multiple architectures images are currently not supported and need to be implemented",
416+
# default to x86_64 architecture
417+
_logger.info(
418+
"Image %s:%s is a docker image with multiple architectures. "
419+
"Currently defaulting to x86_64 architecture",
420+
image,
421+
tag,
421422
)
423+
manifests = request_result.get("manifests", [])
424+
if not manifests:
425+
raise DockerRegistryUnsupportedManifestSchemaVersionError(
426+
version=schema_version,
427+
service_name=image,
428+
service_tag=tag,
429+
reason="Manifest list is empty",
430+
)
431+
first_manifest_digest = manifests[0]["digest"]
432+
request_result, _ = await registry_request(
433+
app,
434+
path=f"{image}/manifests/{first_manifest_digest}",
435+
method="GET",
436+
use_cache=not update_cache,
437+
)
438+
422439
config_digest = request_result["config"]["digest"]
423440
# Fetch the config blob
424441
config_result, _ = await registry_request(

0 commit comments

Comments
 (0)