簡體   English   中英

Docker:“運行 apt 更新”時出現“exec 格式錯誤”

[英]Docker: `exec format error` on `RUN apt update`

這個 Dockerfile:

FROM ubuntu:latest
COPY . /srv/keller
WORKDIR /srv/keller
RUN DEBIAN_FRONTEND=noninteractive apt-get update

結果是

Sending build context to Docker daemon 1.167 MB
Step 0 : FROM ubuntu:latest
 ---> d9fad37da739
Step 1 : COPY . /srv/keller
 ---> 0691d53a9ddb
Removing intermediate container 76978e260250
Step 2 : WORKDIR /srv/keller
 ---> Running in 7d47ac19f397
 ---> 924513b02e82
Removing intermediate container 7d47ac19f397
Step 3 : RUN DEBIAN_FRONTEND=noninteractive apt-get update
 ---> Running in 97284e8842bc
exec format error
[8] System error: exec format error

在 Raspbian GNU/Linux 9 上。這里有什么問題? 請注意,這與入口點/命令無關。 此錯誤發生在 apt 更新上。

您正在嘗試運行英特爾 x86 64 圖像: ubuntu:latest on a raspberry pi (an ARM64),它無法開箱即用...

您可以更改基本映像以與您的主機兼容(例如: arm64v8/ubuntu )。

或者你可以安裝 qemu:

apt install -y qemu qemu-system-x86 binfmt-support qemu-user-static

並注冊到docker:

docker run --rm --privileged multiarch/qemu-user-static --reset -p yes

我在運行 Debian 的雲中設置 pod 時發生了這種情況,而我的機器是 M1。 我不得不將一些圖像推送到私有 docker 存儲庫,但是當我推送它們時,我注意到上傳的圖像與集群中 pod 的架構不兼容。

我的修復方法是拉取正確的圖像docker pull --platform=linux/amd64 python:3.9.16-buster然后使用該圖像而不是通過執行docker pull --platform=linux/amd64 python:3.9.16-buster

您缺少導出和分號,這應該是

RUN export DEBIAN_FRONTEND=noninteractive; apt-get update

或者你可以使用 && 語法

RUN export DEBIAN_FRONTEND=noninteractive && apt-get update

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM