6

I am trying to create a manifest for my docker hub repository such that I have a multi-platform image.

My procedure was as follows:

  1. I started with creating an empty repository and pushing two images to it, one for amd64 and one for arm64. These images can be previewed here: https://hub.docker.com/repository/docker/shadash/docker-multiarch-glusterfs-plugin
  2. I login to my docker hub account using the CLI. I tried the following methods and the response is "Login Succeeded":
docker login --username=shadash
docker login docker.io --username=shadash
docker login https://index.docker.io/v1 --username=shadash
docker login
  1. I attempt to create a manifest:
docker manifest create shadash/docker-multiarch-glusterfs-plugin:latest shadash/docker-multiarch-glusterfs-plugin:x86_64 shadash/docker-multiarch-glusterfs-plugin:aarch64

And the result is:

errors: denied: requested access to the resource is denied unauthorized: authentication required

  1. I tried using the manifest-tool (https://github.com/estesp/manifest-tool)
git clone https://github.com/estesp/manifest-tool
cd manifest-tool
make
./manifest-tool push from-spec someimage.yaml

someimage.yaml:

image: shadash/docker-multiarch-glusterfs-plugin:latest
manifests:
  - image: shadash/docker-multiarch-glusterfs-plugin:x86_64
    platform:
      architecture: amd64
      os: linux
  - image: shadash/docker-multiarch-glusterfs-plugin:aarch64
    platform:
      architecture: arm64
      os: linux

Result:

FATA[0001] Inspect of image "shadash/docker-multiarch-glusterfs-plugin:x86_64" failed with error: errors: denied: requested access to the resource is denied unauthorized: authentication required

So it appears the problem is related to the inspection of my existing image(s). However, I can download and install these plugins just fine (tested on 3 different machines) and they also work when I launch a stack that uses this volume driver:

docker plugin install shadash/docker-multiarch-glusterfs-plugin:x86_64
docker plugin install shadash/docker-multiarch-glusterfs-plugin:aarch64

I am really stuck here and I have no idea why I cannot create a manifest image based on those images. I have successfully created a manifest image for jenkins, see https://hub.docker.com/repository/docker/shadash/docker-multiarch-jenkins

Sophia
  • 303
  • 3
  • 9

1 Answers1

1

This can happen if the images you're referencing haven't been pushed.

For example, if either shadash/docker-multiarch-glusterfs-plugin:x86_64 or shadash/docker-multiarch-glusterfs-plugin:aarch64 from your example in step 3 haven't been pushed, then you'll get this error message.

The solution is to push the images before running docker manifest create.

Charles
  • 155
  • 8