Maison > développement back-end > Golang > Pourquoi ma build Docker échoue-t-elle avec « Impossible d'ouvrir '/lib64/ld-linux-x86-64.so.2' » sur un Mac M1 ?

Pourquoi ma build Docker échoue-t-elle avec « Impossible d'ouvrir '/lib64/ld-linux-x86-64.so.2' » sur un Mac M1 ?

Linda Hamilton
Libérer: 2024-12-11 15:44:09
original
734 Les gens l'ont consulté

Why Does My Docker Build Fail with

Erreur rencontrée : "Impossible d'ouvrir '/lib64/ld-linux-x86-64.so.2'

Lors de la tentative de créer une image Docker sur un MacOS M1 à l'aide de la commande docker build -t te-grafana-dashboards-toolchain --no-cache ., les utilisateurs peuvent rencontrer le message d'erreur "qemu-x86_64 : Impossible d'ouvrir '/lib64/ld-linux-x86-64.so.2' : Aucun fichier ou répertoire de ce type." Le fichier spécifié, requis pour le processus de construction de Docker, n'est pas présent dans le système de fichiers du conteneur.

Root Cause

La cause fondamentale de cette erreur réside dans les différences architecturales entre les puces M1 et les processeurs x86-64 traditionnels. Docker fonctionne de manière native dans un environnement Linux, et le fichier Docker spécifié est destiné à être construit sur un Linux. /AMD64 Cependant, les puces M1 utilisent une architecture de jeu d'instructions (ISA) différente connue sous le nom d'ARM64, qui est incompatible avec x86-64. code.

Solution

Pour résoudre ce problème et réussir à créer l'image Docker sur un Mac M1, il est nécessaire de spécifier la bonne plateforme lors de la création de l'image de base.

Plus précisément, la ligne suivante doit être ajoutée au Dockerfile :

FROM --platform=linux/arm64 ubuntu:focal
Copier après la connexion

Ou

FROM --platform=linux/arm64/v8 ubuntu:focal
Copier après la connexion

En définissant la plate-forme sur Linux/arm64, le processus de construction de Docker utilisera une base basée sur ARM64 image, qui est compatible avec l'ISA de la puce M1. Cela garantira que le fichier nécessaire '/lib64/ld-linux-x86-64.so.2' est disponible dans le système de fichiers du conteneur et que la construction de Docker peut se dérouler sans erreur.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal