Heim >Backend-Entwicklung >Golang >Warum schlägt das Erstellen einer Docker-Datei auf einem M1-Mac mit der Meldung „Keine solche Datei oder kein solches Verzeichnis' für „/lib64/ld-linux-x86-64.so.2' fehl?

Warum schlägt das Erstellen einer Docker-Datei auf einem M1-Mac mit der Meldung „Keine solche Datei oder kein solches Verzeichnis' für „/lib64/ld-linux-x86-64.so.2' fehl?

DDD
DDDOriginal
2024-12-13 10:13:16933Durchsuche

Why Does Building a Dockerfile on M1 Mac Fail with

Fehler „Keine solche Datei oder kein solches Verzeichnis“ für „/lib64/ld-linux-x86-64.so.2“ in qemu-x86_64

Beim Versuch, eine Docker-Datei auf einem M1-MacOS mit Rancher Desktop zu erstellen, kann es sein, dass Benutzer auf Folgendes stoßen Fehler:

qemu-x86_64: Could not open '/lib64/ld-linux-x86-64.so.2': No such file or directory

Dieser Fehler entsteht durch den Versuch, für x86_64 kompilierten Code auf einem ARM64-System (Apple Silicon) zu installieren und auszuführen. Standardmäßig wählt Docker möglicherweise ein ARM64-Image für die Plattform aus, dem die erforderlichen Bibliotheken fehlen.

Lösung für M1 MacOS:

Im Gegensatz zur Lösung des Originalposters Der Schlüssel zur Lösung dieses Problems unter M1 MacOS besteht darin, die Plattform explizit als Linux/AMD64 in der FROM-Zeile der Docker-Datei anzugeben. Dadurch wird sichergestellt, dass Docker mit einem Basis-Image startet, das die erforderlichen Bibliotheken enthält:

FROM --platform=linux/amd64 ubuntu:focal

Mit dieser Änderung verwendet der Build-Prozess ein x86_64-Image als Ausgangspunkt und ermöglicht so die Installation und Ausführung der x86_64-Software darin Der Behälter.

Zusätzliche Überlegungen:

Wenn möglich, wird empfohlen, dies zu berücksichtigen Verwendung eines ARM64-Basisimages und Kompilieren von Software innerhalb des Containers während der Erstellungszeit. Dieser Ansatz kann die Leistung verbessern, wenn der Container auf einem M1-Mac ausgeführt wird, da keine Emulation erforderlich ist.

Das obige ist der detaillierte Inhalt vonWarum schlägt das Erstellen einer Docker-Datei auf einem M1-Mac mit der Meldung „Keine solche Datei oder kein solches Verzeichnis' für „/lib64/ld-linux-x86-64.so.2' fehl?. 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