Skip to content

remotes: containerd fails to pull OCI image with non-http(s):// urls #6220

@ktock

Description

@ktock

Description

containerd fails to pull OCI image with non-http(s):// urls.

Steps to reproduce the issue

Containerd cannot pull the following image (but Docker can).

$ crane manifest ghcr.io/ktock/ubuntu:20.04-i | jq
{
  "schemaVersion": 2,
  "manifests": [
    {
      "mediaType": "application/vnd.oci.image.manifest.v1+json",
      "digest": "sha256:78ef4cff96127a9c9302508ab8116d692e68f863f43598c00aa202ed216d961c",
      "size": 692,
      "urls": [
        "ipfs://bafkreidy55gp7fqspkojgasqrk4bc3ljfzupqy7ugwmmacvcalwsc3mwdq"
      ],
      "platform": {
        "architecture": "amd64",
        "os": "linux"
      }
    }
  ]
}
# ctr i pull ghcr.io/ktock/ubuntu:20.04-i
ctr: failed to copy: httpReadSeeker: failed open: failed to do request: Get "ipfs://bafkreidy55gp7fqspkojgasqrk4bc3ljfzupqy7ugwmmacvcalwsc3mwdq": unsupported protocol scheme "ipfs"

Describe the results you received and expected

OCI-compliant image should be pulled successfully.

According to OCI Image Spec, non-http(s):// scheme is not prohibited.

urls array of strings

This OPTIONAL property specifies a list of URIs from which this object MAY be downloaded. Each entry MUST conform to RFC 3986. Entries SHOULD use the http and https schemes, as defined in RFC 7230.

(https://github.com/opencontainers/image-spec/blob/v1.0/descriptor.md#properties)

What version of containerd are you using?

containerd github.com/containerd/containerd v1.6.0-beta.1-58-g432ddecaa 432ddec

Any other relevant information

# ctr version
Client:
  Version:  v1.6.0-beta.1-58-g432ddecaa
  Revision: 432ddecaae3b5f20e26a79cb527aad5f99d970cb
  Go version: go1.17.1

Server:
  Version:  v1.6.0-beta.1-58-g432ddecaa
  Revision: 432ddecaae3b5f20e26a79cb527aad5f99d970cb
  UUID: 31716fa7-f393-43a8-a57b-f49e677ce313

Show configuration if it is related to CRI plugin.

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions