记录一次docker多平台build问题

2025年1月13日20:39:30 发表评论 229 ℃

最近接手一个国外项目,用的rust语言,部署在AWS的ECS上面。

我们开发在开发环境build发布到集群以后,报错docker: not found。

一开始以为是容器里面没有安装成功docker,检查dockerfile没有发现异常。

docker build以后本地测试镜像里面docker命令可以正常运行。

由于这个项目的部署没有采用自动化,而且服务与服务之间的部署都是靠多个脚本去触发。

一开始怀疑ECS上面运行的镜像不是我们本地推送的镜像,经过一些列的排查,发现使用的tag是正确的。

由于这个项目build需要很久,push镜像也需要很久,就自己写了一个dockerfile build测试,但是发布以后可以正常找到docker命令。

就在没有方向的时候,开发说这个项目之前是部署在amd架构的服务器上面的,最近项目方才改到了arm架构上面,会不会是因为这个。

看了使用的build命令

记录一次docker多平台build问题

buildx 默认使用的 构建器( builder ) 驱动是 docker driver,它不支持同时构建多个 platform 的镜像。

需要使用 docker buildx create 创建docker-container driver的构建器。

docker run --privileged --rm tonistiigi/binfmt --install all

docker buildx create --name mybuilder --driver docker-container --use

docker buildx inspect --bootstrap

【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: