記錄一次docker多平臺(tái)build問(wèn)題

2025年1月13日20:39:30 發(fā)表評(píng)論 1,282 ℃

最近接手一個(gè)國(guó)外項(xiàng)目,用的rust語(yǔ)言,部署在AWS的ECS上面。

我們開(kāi)發(fā)在開(kāi)發(fā)環(huán)境build發(fā)布到集群以后,報(bào)錯(cuò)docker: not found。

一開(kāi)始以為是容器里面沒(méi)有安裝成功docker,檢查dockerfile沒(méi)有發(fā)現(xiàn)異常。

docker build以后本地測(cè)試鏡像里面docker命令可以正常運(yùn)行。

由于這個(gè)項(xiàng)目的部署沒(méi)有采用自動(dòng)化,而且服務(wù)與服務(wù)之間的部署都是靠多個(gè)腳本去觸發(fā)。

一開(kāi)始懷疑ECS上面運(yùn)行的鏡像不是我們本地推送的鏡像,經(jīng)過(guò)一些列的排查,發(fā)現(xiàn)使用的tag是正確的。

由于這個(gè)項(xiàng)目build需要很久,push鏡像也需要很久,就自己寫(xiě)了一個(gè)dockerfile build測(cè)試,但是發(fā)布以后可以正常找到docker命令。

就在沒(méi)有方向的時(shí)候,開(kāi)發(fā)說(shuō)這個(gè)項(xiàng)目之前是部署在amd架構(gòu)的服務(wù)器上面的,最近項(xiàng)目方才改到了arm架構(gòu)上面,會(huì)不會(huì)是因?yàn)檫@個(gè)。

看了使用的build命令

記錄一次docker多平臺(tái)build問(wèn)題

buildx 默認(rèn)使用的 構(gòu)建器( builder ) 驅(qū)動(dòng)是 docker driver,它不支持同時(shí)構(gòu)建多個(gè) platform 的鏡像。

需要使用 docker buildx create 創(chuàng)建docker-container driver的構(gòu)建器。

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

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

docker buildx inspect --bootstrap

【騰訊云】云服務(wù)器、云數(shù)據(jù)庫(kù)、COS、CDN、短信等云產(chǎn)品特惠熱賣中

發(fā)表評(píng)論

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