[英]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.