我正在尝试将多体系结构的Docker映像推送到Docker中心并遇到错误(在https://github.com/docker/distribution/issues/3100处打开docker问题:]
❯ docker build -t andig/evcc:latest-amd64 -f linux-amd64-.Dockerfile .
❯ docker build -t andig/evcc:latest-arm.v6 -f linux-arm-6.Dockerfile .
❯ docker push andig/evcc:latest-amd64
❯ docker push andig/evcc:latest-arm.v6
❯ docker manifest create --amend andig/evcc:latest andig/evcc:latest-amd64 andig/evcc:latest-arm.v6
❯ docker manifest annotate andig/evcc:latest andig/evcc:latest-amd64 --os=linux --arch=amd64
❯ docker manifest annotate andig/evcc:latest andig/evcc:latest-arm.v6 --os=linux --arch=arm --variant=v6
❯ docker manifest push andig/evcc:latest
failed to put manifest docker.io/andig/evcc:latest: errors:
manifest blob unknown: blob unknown to registry
manifest blob unknown: blob unknown to registry
manifest blob unknown: blob unknown to registry
manifest blob unknown: blob unknown to registry
manifest blob unknown: blob unknown to registry
搜索显示错误可能与“外国图层”(https://issues.sonatype.org/browse/NEXUS-11865)有关,但尚不清楚如何基于Alpine构建图像。
作为docker github票和一个论坛问题没有得到任何回应-我还可以做进一步的分析吗?例如,我如何找出它抱怨的是哪一层?
您应该尝试CLI的buildx功能。
假设Dockerfile
如下:
FROM alpine
ARG TARGETPLATFORM
ARG TARGETOS
ARG TARGETARCH
ARG TARGETVARIANT
ARG BUILDPLATFORM
ARG BUILDOS
ARG BUILDARCH
ARG BUILDVARIANT
RUN echo "Image target platform details :: "
RUN echo "TARGETPLATFORM : $TARGETPLATFORM"
RUN echo "TARGETOS : $TARGETOS"
RUN echo "TARGETARCH : $TARGETARCH"
RUN echo "TARGETVARIANT : $TARGETVARIANT"
RUN echo "Image build platform details :: "
RUN echo "BUILDPLATFORM : $BUILDPLATFORM"
RUN echo "BUILDOS : $BUILDOS"
RUN echo "BUILDARCH : $BUILDARCH"
RUN echo "BUILDVARIANT : $BUILDVARIANT"
docker build命令-
docker buildx build --platform linux/amd64,linux/arm64,linux/arm/v7 -t sujaypillai/multiarc:latest --push .
docker buildx build --platform linux/amd64,linux/arm64,linux/arm/v7 -t sujaypillai/multiarc:latest --push .
[+] Building 78.1s (40/40) FINISHED
=> [internal] booting buildkit 14.1s
=> => pulling image moby/buildkit:buildx-stable-1 13.3s
=> => creating container buildx_buildkit_meetupbuilder0 0.7s
=> [internal] load .dockerignore 0.0s
=> => transferring context: 2B 0.0s
=> [internal] load build definition from Dockerfile 0.0s
=> => transferring dockerfile: 618B 0.0s
=> [linux/arm/v7 internal] load metadata for docker.io/library/alpine:latest 25.9s
=> [linux/amd64 internal] load metadata for docker.io/library/alpine:latest 28.4s
=> [linux/arm64 internal] load metadata for docker.io/library/alpine:latest 21.8s
=> [linux/amd64 1/11] FROM docker.io/library/alpine@sha256:185518070891758909c9f839cf4ca393ee977ac378609f700f60a771a2dfe321 13.2s
=> => resolve docker.io/library/alpine@sha256:185518070891758909c9f839cf4ca393ee977ac378609f700f60a771a2dfe321 0.0s
=> => sha256:a24bb4013296f61e89ba57005a7b3e52274d8edd3ae2077d04395f806b63d83e 1.51kB / 1.51kB 0.0s
=> => sha256:185518070891758909c9f839cf4ca393ee977ac378609f700f60a771a2dfe321 1.64kB / 1.64kB 0.0s
=> => sha256:a15790640a6690aa1730c38cf0a440e2aa44aaca9b0e8931a9f2b0d7cc90fd65 528B / 528B 0.0s
=> => sha256:df20fa9351a15782c64e6dddb2d4a6f50bf6d3688060a34c4014b0d9a752eb4c 2.80MB / 2.80MB 6.4s
=> => unpacking docker.io/library/alpine@sha256:185518070891758909c9f839cf4ca393ee977ac378609f700f60a771a2dfe321 0.1s
=> [linux/arm64 1/11] FROM docker.io/library/alpine@sha256:185518070891758909c9f839cf4ca393ee977ac378609f700f60a771a2dfe321 11.8s
=> => resolve docker.io/library/alpine@sha256:185518070891758909c9f839cf4ca393ee977ac378609f700f60a771a2dfe321 0.0s
=> => sha256:185518070891758909c9f839cf4ca393ee977ac378609f700f60a771a2dfe321 1.64kB / 1.64kB 0.0s
=> => sha256:3b3f647d2d99cac772ed64c4791e5d9b750dd5fe0b25db653ec4976f7b72837c 528B / 528B 0.0s
=> => sha256:b538f80385f9b48122e3da068c932a96ea5018afa3c7be79da00437414bd18cd 2.71MB / 2.71MB 6.9s
=> => sha256:62ee0e9f84408099149bdf3873554feebd1ee199daa1e0e80b840414cd5c4c9b 1.51kB / 1.51kB 0.0s
=> => unpacking docker.io/library/alpine@sha256:185518070891758909c9f839cf4ca393ee977ac378609f700f60a771a2dfe321 0.1s
=> [linux/arm/v7 1/11] FROM docker.io/library/alpine@sha256:185518070891758909c9f839cf4ca393ee977ac378609f700f60a771a2dfe321 13.6s
=> => resolve docker.io/library/alpine@sha256:185518070891758909c9f839cf4ca393ee977ac378609f700f60a771a2dfe321 0.0s
=> => sha256:52278dd8e57993669c5b72a9620e89bebdc098f2af2379caaa8945f7403f77a2 2.41MB / 2.41MB 8.2s
=> => sha256:7e4bece93b3e57b41f44ed293874207984d801979836c7aa4f8e9ef079f5283c 1.51kB / 1.51kB 0.0s
=> => sha256:185518070891758909c9f839cf4ca393ee977ac378609f700f60a771a2dfe321 1.64kB / 1.64kB 0.0s
=> => sha256:c929c5ca1d3f793bfdd2c6d6d9210e2530f1184c0f488f514f1bb8080bb1e82b 528B / 528B 0.0s
=> => unpacking docker.io/library/alpine@sha256:185518070891758909c9f839cf4ca393ee977ac378609f700f60a771a2dfe321 0.1s
=> [linux/arm64 2/11] RUN echo "Image target platform details :: " 0.2s
=> [linux/arm64 3/11] RUN echo "TARGETPLATFORM : linux/arm64" 0.2s
=> [linux/arm64 4/11] RUN echo "TARGETOS : linux" 0.2s
=> [linux/arm64 5/11] RUN echo "TARGETARCH : arm64" 0.1s
=> [linux/arm64 6/11] RUN echo "TARGETVARIANT : " 0.1s
=> [linux/arm64 7/11] RUN echo "Image build platform details :: " 0.2s
=> [linux/arm64 8/11] RUN echo "BUILDPLATFORM : linux/amd64" 0.1s
=> [linux/arm64 9/11] RUN echo "BUILDOS : linux" 0.2s
=> [linux/arm64 10/11] RUN echo "BUILDARCH : amd64" 0.2s
=> [linux/arm64 11/11] RUN echo "BUILDVARIANT : " 0.2s
=> [linux/amd64 2/11] RUN echo "Image target platform details :: " 0.1s
=> [linux/amd64 3/11] RUN echo "TARGETPLATFORM : linux/amd64" 0.2s
=> [linux/amd64 4/11] RUN echo "TARGETOS : linux" 0.2s
=> [linux/arm/v7 2/11] RUN echo "Image target platform details :: " 0.2s
=> [linux/amd64 5/11] RUN echo "TARGETARCH : amd64" 0.2s
=> [linux/arm/v7 3/11] RUN echo "TARGETPLATFORM : linux/arm/v7" 0.2s
=> [linux/amd64 6/11] RUN echo "TARGETVARIANT : " 0.1s
=> [linux/arm/v7 4/11] RUN echo "TARGETOS : linux" 0.1s
=> [linux/amd64 7/11] RUN echo "Image build platform details :: " 0.2s
=> [linux/arm/v7 5/11] RUN echo "TARGETARCH : arm" 0.2s
=> [linux/amd64 8/11] RUN echo "BUILDPLATFORM : linux/amd64" 0.2s
=> [linux/arm/v7 6/11] RUN echo "TARGETVARIANT : v7" 0.1s
=> [linux/amd64 9/11] RUN echo "BUILDOS : linux" 0.1s
=> [linux/arm/v7 7/11] RUN echo "Image build platform details :: " 0.2s
=> [linux/amd64 10/11] RUN echo "BUILDARCH : amd64" 0.1s
=> [linux/arm/v7 8/11] RUN echo "BUILDPLATFORM : linux/amd64" 0.2s
=> [linux/amd64 11/11] RUN echo "BUILDVARIANT : " 0.1s
=> [linux/arm/v7 9/11] RUN echo "BUILDOS : linux" 0.1s
=> [linux/arm/v7 10/11] RUN echo "BUILDARCH : amd64" 0.1s
=> [linux/arm/v7 11/11] RUN echo "BUILDVARIANT : " 0.1s
=> exporting to image 20.3s
=> => exporting layers 0.6s
=> => exporting manifest sha256:df3e6c4fbf6641d1ecf860e05f7a796c44a0e2ada4f329a5d010ca57fd3e1c7a 0.0s
=> => exporting config sha256:2fa9e2f9dd38e963f3c62c529169029407436c2a33b438b1e5c9f40a93987100 0.0s
=> => exporting manifest sha256:b98e4b137e0966c9b67545facdc0ed481490e611faea202678274ad20f5e7b33 0.0s
=> => exporting config sha256:b90679defbecf0b6e3335bf84928bf71b7cd3a161db67aa2f68e0101a752ca5a 0.0s
=> => exporting manifest sha256:226daa79f5944d1df4a5265f56fd84f59fa53a4c7add722c9572d9abbb6c21db 0.0s
=> => exporting config sha256:61bf5fa0b01de86509cb10eaa833c9ec9231f9983e0abae99e9d0912580e951e 0.0s
=> => exporting manifest list sha256:995c492146ccd338fee877395543b4e756a583d670b9721d53724eb5f093d54f 0.0s
=> => pushing layers 8.2s
=> => pushing manifest for docker.io/sujaypillai/multiarc:latest 11.4s
这是docker manifest
命令的结果-
docker manifest inspect docker.io/sujaypillai/multiarc:latest | jq .manifests[].platform
{
"architecture": "amd64",
"os": "linux"
}
{
"architecture": "arm64",
"os": "linux"
}
{
"architecture": "arm",
"os": "linux",
"variant": "v7"
}