我在MacBook Pro M1上使用Rancher Desktop来构建和发布docker映像。
需求是为amd64和arm64平台构建映像,因此我尝试使用以下命令来完成此操作:
docker buildx create --name my-app-image-builder --platform linux/arm64,linux/arm/v8
docker buildx build --builder my-app-image-builder --platform linux/amd64,linux/arm64 -o type=registry -t my-app:latest .
希望我可以将映像发布到本地注册表,以便在提升之前对其进行测试。docker映像构建得很好,但是在发布映像时,出现以下错误:
[exec] #38 exporting to image
[exec] #38 exporting layers done
[exec] #38 exporting manifest sha256:e78442aec2edae5e87fe3cd35cdcc0f66d8040febc1fed5aae6b98a03d20cfe9 done
[exec] #38 exporting config sha256:073bd50a7bcdbb168aa4667444d10b4941c1e4c645bd6300828e1a8caa27864f done
[exec] #38 exporting manifest sha256:7fe8dfdd7b5ba6b46a6018c57fdf19b5476fb98e0cb95934a78f5ca68db3f54d done
[exec] #38 exporting config sha256:43f1ccc2b69eac343d84a25aa4df06c03b49dba2c18f49a7505d61d6bc26a30a done
[exec] #38 exporting manifest list sha256:3eedf89c68a733854f0bd50a0eefed2858c150a8a73c63bee4a3deab2e5e47ce done
[exec] #38 pushing layers
[exec] #38 pushing layers 1.3s done
[exec] #38 ERROR: server message: insufficient_scope: authorization failed
[exec] ------
[exec] > exporting to image:
[exec] ------
[exec] ERROR: failed to solve: server message: insufficient_scope: authorization failed
版本信息:
- Rancher桌面版本:1.6.2
- macOS Monterey版本:12.6.1 Docker版本:20.10.17-rd, build c2e4e01
- Docker buildx版本:github.com/docker/buildx v0.9.1 ed00243a0ce2a0aee75311b06e32d33b44729689
我不确定这纯粹是我无知还是Rancher Desktop docker实现的一些限制?任何线索/指针吗?
您没有权限将图像推送到my-app:latest
,就像您没有权限推送新的alpine:latest
图像一样。这些没有注册表和用户名的名字被推送到Docker Hub上的官方镜像命名空间。
要解决这个问题,您需要使用您可以访问推送映像的注册表和/或存储库来命名映像。如果访问需要登录,那么首先执行登录。例如,您可以创建一个Hub帐户,并将图像推送到$username/image:latest
。