首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >来自现有二进制文件的docker buildx多重弓

来自现有二进制文件的docker buildx多重弓
EN

Stack Overflow用户
提问于 2022-03-14 10:28:19
回答 1查看 279关注 0票数 0

基于预编译的二进制文件,我想要创建一个多拱码头映像。我使用https://github.com/cross-rs/cross创建了这些二进制文件。

我想做一些类似的事情:

代码语言:javascript
复制
FROM --PLATFORM=$TARGETPLATFORM ubuntu:20.04
ADD BINARY_$TARGETPLATFORM /BINARY

这种方法不起作用,因为$TARGETPLATFORM似乎不能在“添加”中使用。

建立一个平台,并推动所有这些平台将是我最喜欢的解决方案。我发现的所有例子都是同时构建和推送所有平台--这对我来说是行不通的,因为我需要在每个图像中添加正确的二进制文件。

有没有一种逐平台构建平台的方法?

代码语言:javascript
复制
# 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_....
EN

回答 1

Stack Overflow用户

发布于 2022-03-16 08:19:26

构建多次,而不是创建一个清单是我的解决方案。

代码语言:javascript
复制
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:latest
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71466241

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档