Heim >Backend-Entwicklung >Golang >QEMU-x86_64 auf ARM64 Docker: Wie behebt man den Fehler „Keine solche Datei oder kein solches Verzeichnis'?

QEMU-x86_64 auf ARM64 Docker: Wie behebt man den Fehler „Keine solche Datei oder kein solches Verzeichnis'?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-12-19 09:48:10310Durchsuche

QEMU-x86_64 on ARM64 Docker: How to Fix

Kein solcher Datei- oder Verzeichnisfehler: Fehlerbehebung für QEMU-x86_64 auf ARM64-Docker-Builds

Beim Erstellen von Docker-Images auf M1 MacOS mit QEMU-x86_64 , können Benutzer auf den Fehler „qemu-x86_64: Konnte nicht geöffnet werden“ stoßen '/lib64/ld-linux-x86-64.so.2': Keine solche Datei oder kein solches Verzeichnis.“ Dieser Fehler tritt auf, weil die ARM64 M1-Architektur nicht über die x86_64-Bibliothek für gemeinsam genutzte Objekte verfügt, die für die Docker-Datei erforderlich ist.

Um dieses Problem zu beheben, besteht die Lösung darin, die in der FROM-Anweisung der Docker-Datei angegebene Plattform zu ändern. Anstatt die standardmäßige ARM64-Plattform zu verwenden, geben Sie explizit die Linux/AMD64-Plattform wie folgt an:

FROM --platform=linux/amd64 ubuntu:20.04

Diese Änderung zwingt Docker dazu, ein x86_64-Basisimage zu verwenden, das die erforderlichen gemeinsam genutzten Objektbibliotheken enthält. Infolgedessen wird der Build-Prozess versuchen, explizit für x86_64 kompilierten Code zu installieren und auszuführen.

Alternativ sollten Sie, wenn möglich, die Verwendung eines ARM64-Basisimages und das Kompilieren von Software für x86_64 innerhalb des Containers während der Build-Zeit in Betracht ziehen. Obwohl dieser Ansatz aufgrund der Emulation möglicherweise langsamer ist, kann er zu einer höheren Leistung führen, wenn der Container auf M1-basierten Macs ausgeführt wird.

Das obige ist der detaillierte Inhalt vonQEMU-x86_64 auf ARM64 Docker: Wie behebt man den Fehler „Keine solche Datei oder kein solches Verzeichnis'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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