【发布时间】:2020-06-06 03:16:52
【问题描述】:
我正在尝试为我的 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
结果是:
错误: denied:请求的资源访问被拒绝 未经授权:需要身份验证
- 我尝试使用清单工具 (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”失败并出现错误:错误: denied:请求的资源访问被拒绝 未经授权:需要身份验证
所以看来问题与我现有图像的检查有关。但是,我可以很好地下载和安装这些插件(在 3 台不同的机器上测试过),并且当我启动使用此卷驱动程序的堆栈时它们也可以工作:
docker plugin install shadash/docker-multiarch-glusterfs-plugin:x86_64
docker plugin install shadash/docker-multiarch-glusterfs-plugin:aarch64
我真的被困在这里,我不知道为什么我不能根据这些图像创建清单图像。我已经为 jenkins 成功创建了 manifest 镜像,见 https://hub.docker.com/repository/docker/shadash/docker-multiarch-jenkins
【问题讨论】:
标签: docker plugins manifest multiarch