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!