我正在尝试为我的 docker hub 存储库创建一个清单,以便我拥有一个多平台图像。
我的程序如下:
- 我首先创建了一个空存储库并将两个图像推送到其中,一个用于 amd64,一个用于 arm64。这些图像可以在这里预览:https ://hub.docker.com/repository/docker/shadash/docker-multiarch-glusterfs-plugin
- 我使用 CLI 登录到我的 docker hub 帐户。我尝试了以下方法,响应是“登录成功”:
docker login --username=shadash
docker login docker.io --username=shadash
docker login https://index.docker.io/v1 --username=shadash
docker login
- 我尝试创建一个清单:
docker manifest create shadash/docker-multiarch-glusterfs-plugin:latest shadash/docker-multiarch-glusterfs-plugin:x86_64 shadash/docker-multiarch-glusterfs-plugin:aarch64
结果是:
错误:拒绝:请求的资源访问被拒绝未经授权:需要身份验证
- 我尝试使用清单工具(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
结果:
FATA [0001] 检查图像“shadash/docker-multiarch-glusterfs-plugin:x86_64”失败并出现错误:错误:拒绝:请求的资源访问被拒绝未经授权:需要身份验证
因此,问题似乎与我现有图像的检查有关。但是,我可以很好地下载和安装这些插件(在 3 台不同的机器上测试),并且当我启动使用此卷驱动程序的堆栈时它们也可以工作:
docker plugin install shadash/docker-multiarch-glusterfs-plugin:x86_64
docker plugin install shadash/docker-multiarch-glusterfs-plugin:aarch64
我真的被困在这里,我不知道为什么我不能根据这些图像创建清单图像。我已成功为 jenkins 创建了清单映像,请参阅https://hub.docker.com/repository/docker/shadash/docker-multiarch-jenkins