Heim > Backend-Entwicklung > Golang > Warum schlägt mein Docker-Build mit „qemu-x86_64: ‚/lib64/ld-linux-x86-64.so.2' konnte nicht geöffnet werden' auf M1-Macs fehl?

Warum schlägt mein Docker-Build mit „qemu-x86_64: ‚/lib64/ld-linux-x86-64.so.2' konnte nicht geöffnet werden' auf M1-Macs fehl?

DDD
Freigeben: 2024-12-17 11:15:26
Original
184 Leute haben es durchsucht

Why Does My Docker Build Fail with

"qemu-x86_64: Konnte '/lib64/ld-linux-x86-64.so.2' nicht öffnen: Keine solche Datei oder kein solches Verzeichnis" Fehler in Docker Auf M1-Macs erstellen

Beim Erstellen von Docker-Images auf M1-Macs mit Docker Auf dem Desktop kann bei Benutzern die Fehlermeldung „qemu-x86_64: „/lib64/ld-linux-x86-64.so.2“ konnte nicht geöffnet werden: Keine solche Datei oder kein solches Verzeichnis“ angezeigt werden. Dieses Problem entsteht, weil Docker versucht, ein ARM64-Image als Basis-Image zu verwenden, später jedoch für die x86_64-Architektur kompilierte Binärdateien benötigt.

Die Hauptursache für dieses Problem ist, dass sich die Architektur des M1 Mac von herkömmlichen x86_64-Architekturen unterscheidet. Obwohl die Emulation über qemu-x86_64 unterstützt wird, führt das Fehlen der erforderlichen Datei „/lib64/ld-linux-x86-64.so.2“ im ARM64-Basisimage zu dem gemeldeten Fehler.

< h3>Lösung:

Entgegen der Intuition lautet die Lösung: Geben Sie explizit --platform=linux/amd64 in der Zeile „FROM“ in der Docker-Datei an:

FROM --platform=linux/amd64 ubuntu:focal
Nach dem Login kopieren

Dadurch wird Docker angewiesen, ein x86_64-Basisimage zu verwenden, um sicherzustellen, dass die erforderlichen Dateien vorhanden sind während des Build-Prozesses vorhanden. Wenn Sie von einem x86_64-Image ausgehen, kann der Build-Prozess ohne Emulation fortgesetzt werden, wodurch der Fehler „Datei nicht gefunden“ behoben wird.

Alternativ können Benutzer erwägen, ihre eigenen ARM64-basierten Basis-Images zu erstellen und die erforderliche Software manuell darin zu kompilieren Container während der Bauzeit. Diese Option eignet sich jedoch möglicherweise besser für bestimmte Szenarien, in denen keine vorgefertigten ARM64-Binärdateien verfügbar sind.

Das obige ist der detaillierte Inhalt vonWarum schlägt mein Docker-Build mit „qemu-x86_64: ‚/lib64/ld-linux-x86-64.so.2' konnte nicht geöffnet werden' auf M1-Macs fehl?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage