diff --git a/pkg/extensions/sync/utils.go b/pkg/extensions/sync/utils.go index 8b551cd1..c33673f4 100644 --- a/pkg/extensions/sync/utils.go +++ b/pkg/extensions/sync/utils.go @@ -680,7 +680,8 @@ func descriptorEqual(desc1, desc2 ispec.Descriptor) bool { func isSupportedMediaType(mediaType string) bool { return mediaType == ispec.MediaTypeImageIndex || mediaType == ispec.MediaTypeImageManifest || - mediaType == manifest.DockerV2ListMediaType + mediaType == manifest.DockerV2ListMediaType || + mediaType == manifest.DockerV2Schema2MediaType } func getImageRefManifest(ctx context.Context, upstreamCtx *types.SystemContext, imageRef types.ImageReference, diff --git a/test/blackbox/sync_docker.bats b/test/blackbox/sync_docker.bats index 46c23220..0dbd5c45 100644 --- a/test/blackbox/sync_docker.bats +++ b/test/blackbox/sync_docker.bats @@ -53,13 +53,12 @@ function teardown_file() { } # sync image -@test "sync docker image on demand" { - run skopeo --insecure-policy copy --src-tls-verify=false \ +@test "sync docker image list on demand" { + run skopeo --insecure-policy copy --multi-arch=all --src-tls-verify=false \ docker://127.0.0.1:8090/registry \ oci:${TEST_DATA_DIR} [ "$status" -eq 0 ] - run curl http://127.0.0.1:8090/v2/_catalog [ "$status" -eq 0 ] [ $(echo "${lines[-1]}" | jq '.repositories[]') = '"registry"' ] @@ -67,3 +66,17 @@ function teardown_file() { [ "$status" -eq 0 ] [ $(echo "${lines[-1]}" | jq '.tags[]') = '"latest"' ] } + +@test "sync docker image on demand" { + run skopeo --insecure-policy copy --src-tls-verify=false \ + docker://127.0.0.1:8090/archlinux \ + oci:${TEST_DATA_DIR} + [ "$status" -eq 0 ] + + run curl http://127.0.0.1:8090/v2/_catalog + [ "$status" -eq 0 ] + [ $(echo "${lines[-1]}" | jq '.repositories[0]') = '"archlinux"' ] + run curl http://127.0.0.1:8090/v2/registry/tags/list + [ "$status" -eq 0 ] + [ $(echo "${lines[-1]}" | jq '.tags[]') = '"latest"' ] +}