亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

qemu-x86_64:無法打開'/lib64/ld-linux-x86-64.so.2':

qemu-x86_64:無法打開'/lib64/ld-linux-x86-64.so.2':

Go
SMILET 2022-11-08 10:43:47
我在 M1 MacOS 上有一個 Rancher Deskop(dockerd),當我嘗試在 dockerfile 下構建時,出現如下錯誤。這是我嘗試構建圖像的命令docker build -t te-grafana-dashboards-toolchain --no-cache .我試圖改變平臺,但其中的 nonae 對我有用。我對 M1 的這個平臺問題有點迷茫,但任何幫助將不勝感激,我做錯了什么?這可能是什么根本原因?Removing intermediate container 70af516d5d6b ---> a69229847153Step 5/6 : RUN GO111MODULE="on" go get github.com/jsonnet-bundler/jsonnet-bundler/cmd/jb; ln -s $(go env GOPATH)/bin/jb /usr/bin/jb ---> Running in 13545862fffeqemu-x86_64: Could not open '/lib64/ld-linux-x86-64.so.2': No such file or directoryqemu-x86_64: Could not open '/lib64/ld-linux-x86-64.so.2': No such file or directoryRemoving intermediate container 13545862fffeDockerfileFROM --platform=linux/amd64 ubuntu:focalRUN apt update; apt install -y curl jq build-essential python3.8 python3-pip docker-compose jsonnet bison mercurialRUN ln -s /usr/bin/python3.8 /usr/bin/pythonRUN curl -OL https://golang.org/dl/go1.17.linux-amd64.tar.gz; mkdir /etc/golang; tar -xvzf go1.17.linux-amd64.tar.gz -C /etc/golang; ln -s /etc/golang/go/bin/go /usr/bin/go; rm -f go1.17.linux-amd64.tar.gzRUN GO111MODULE="on" go get github.com/jsonnet-bundler/jsonnet-bundler/cmd/jb; ln -s $(go env GOPATH)/bin/jb /usr/bin/jbWORKDIR /workspace
查看完整描述

4 回答

?
臨摹微笑

TA貢獻1982條經驗 獲得超2個贊

順便說一句,如果它對其他登陸這里的人有幫助,我在 M1 Max MacBook Pro 筆記本電腦上也遇到了同樣的問題,試圖docker build從公司回購中做一個應該是一條很好的路徑,但我可能是唯一的一個(它是一家擁有 ARM64 M1“Apple Silicon”Mac 的小公司。但是我發現我的情況的解決方案(嗯,一個解決方案)與 OP 的解決方案完全相反,那就是添加 --platform=linux/amd64 到 docker 文件的 FROM 行。

否則,它會使用 ARM64 映像開始,而我并不聰明,但后來在 Dockerfile 中,構建嘗試安裝和執行為 x86_64 編譯的代碼。通過請求基本映像開始構建過程linux/amd64,然后基本映像具有/lib64/ld-linux-x86-64.so.2. 這可能意味著一切都在 ARM64 CPU 上被模擬為 x86_64 qemu-x86_64,因此如果您可以選擇從 ARM64 映像開始,并且可以在構建期間在容器內編譯任何您無法安裝為 ARM64 二進制文件的軟件,它會當您稍后在基于 M1 的 Mac 上運行容器時,可能會更快。對于這種情況,我還不能自己嘗試。


查看完整回答
反對 回復 2022-11-08
?
慕碼人8056858

TA貢獻1803條經驗 獲得超6個贊

這解決了我的問題。


FROM ubuntu:focal

RUN apt update; apt install -y curl jq build-essential python3.8 python3-pip docker-compose jsonnet bison mercurial

RUN ln -s /usr/bin/python3.8 /usr/bin/python

RUN curl -OL https://golang.org/dl/go1.17.linux-arm64.tar.gz; mkdir /etc/golang; tar -xvzf go1.17.linux-arm64.tar.gz -C /etc/golang; ln -s /etc/golang/go/bin/go /usr/bin/go; rm -f go1.17.linux-arm64.tar.gz

RUN GO111MODULE="on" go get github.com/jsonnet-bundler/jsonnet-bundler/cmd/jb@latest; ln -s /root/go/bin/jb /usr/bin/jb

WORKDIR /workspace


查看完整回答
反對 回復 2022-11-08
?
蕭十郎

TA貢獻1815條經驗 獲得超13個贊

將以下標志傳遞給 C 預處理器CPPFLAGS解決了我的 M1 中的類似問題

-DPNG_ARM_NEON_OPT=0

將值作為帶有密鑰的 env var 傳遞CPPFLAGS給相關服務。


查看完整回答
反對 回復 2022-11-08
?
烙印99

TA貢獻1829條經驗 獲得超13個贊

修改Dockerfile似乎是最流行的答案,但您也可以將DOCKER_DEFAULT_PLATFORM環境變量設置為linux/amd64.

export DOCKER_DEFAULT_PLATFORM=linux/amd64

原因似乎在于 AArch64 圖像。


查看完整回答
反對 回復 2022-11-08
  • 4 回答
  • 0 關注
  • 2634 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號