Maison >développement back-end >Golang >Pourquoi la création d'un fichier Docker sur Mac M1 échoue-t-elle avec « Aucun fichier ou répertoire de ce type » pour « /lib64/ld-linux-x86-64.so.2 » ?
Erreur rencontrée "Aucun fichier ou répertoire de ce type" pour '/lib64/ld-linux-x86-64.so.2' dans qemu-x86_64
Lorsqu'ils tentent de créer un Dockerfile sur un MacOS M1 à l'aide de Rancher Desktop, les utilisateurs peuvent rencontrer ce qui suit erreur :
qemu-x86_64: Could not open '/lib64/ld-linux-x86-64.so.2': No such file or directory
Cette erreur provient de la tentative d'installation et d'exécution du code compilé pour x86_64 sur un système ARM64 (Apple Silicon). Par défaut, Docker peut sélectionner une image ARM64 pour la plateforme, qui ne dispose pas des bibliothèques nécessaires.
Solution pour MacOS M1 :
Contrairement à la solution de l'affiche originale, la clé pour résoudre ce problème sur MacOS M1 est de spécifier explicitement la plate-forme comme linux/amd64 dans la ligne FROM du Dockerfile. Cela garantit que Docker démarre avec une image de base qui inclut les bibliothèques requises :
FROM --platform=linux/amd64 ubuntu:focal
Avec cette modification, le processus de construction utilisera une image x86_64 comme point de départ, permettant l'installation et l'exécution du logiciel x86_64 dans le conteneur.
Considérations supplémentaires :
Si possible, il est recommandé d'envisager en utilisant une image de base ARM64 et en compilant un logiciel dans le conteneur pendant le temps de construction. Cette approche peut améliorer les performances lors de l’exécution du conteneur sur un Mac M1, car elle élimine le besoin d’émulation.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!