基于预编译的二进制文件,我想要创建一个多拱码头映像。我使用https://github.com/cross-rs/cross创建了这些二进制文件。
我想做一些类似的事情:
FROM --PLATFORM=$TARGETPLATFORM ubuntu:20.04
ADD BINARY_$TARGETPLATFORM /BINARY这种方法不起作用,因为$TARGETPLATFORM似乎不能在“添加”中使用。
建立一个平台,并推动所有这些平台将是我最喜欢的解决方案。我发现的所有例子都是同时构建和推送所有平台--这对我来说是行不通的,因为我需要在每个图像中添加正确的二进制文件。
有没有一种逐平台构建平台的方法?
# seems that this is the buildx way
docker buildx build --platform linux/amd64,linux/arm64,linux/arm/v .
# i would like to to this:
cp target/linux/amd64/BINARY BINARY
docker buildx build --platform linux/amd64 .
cp target/linux/arm64/BINARY BINARY
docker buildx build --platform linux/arm64 .
cp target/linux/arm/BINARY BINARY
docker buildx build --platform linux/arm/v .
docker buildx create_manifest_and_push_....发布于 2022-03-16 08:19:26
构建多次,而不是创建一个清单是我的解决方案。
cp target/x86_64-unknown-linux-musl/release/XXX XXX
docker buildx build --platform linux/amd64 -t XXX/XXX:latest_amd64 --push .
cp target/aarch64-unknown-linux-musl/release/XXX XXX
docker buildx build --platform linux/arm64 -t XXX/XXX:latest_arm64 --push .
docker manifest create XXX/XXX:latest XXX/XXX:latest_amd64 XXX/XXX:latest_arm64
docker manifest push XXX/XXX:latesthttps://stackoverflow.com/questions/71466241
复制相似问题