Maison >développement back-end >Golang >Pourquoi mon binaire Go personnalisé ne peut-il pas s'exécuter dans une image Alpine Docker ?

Pourquoi mon binaire Go personnalisé ne peut-il pas s'exécuter dans une image Alpine Docker ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-05 22:43:09223parcourir

Why Can't My Custom Go Binary Run in an Alpine Docker Image?

Binaire Go installé introuvable dans le chemin sur Alpine Linux Docker

Cette question se pose lorsque vous tentez d'exécuter un binaire Go personnalisé sur un Alpine Docker image, où le binaire ne parvient pas à être trouvé dans le chemin. Bien que le binaire Go par défaut d'Alpine fonctionne comme prévu, les binaires personnalisés rencontrent l'erreur « introuvable ».

Le problème provient d'un lien de compatibilité manquant dans Alpine Linux. Le binaire s'appuie sur une bibliothèque dynamique spécifique (par exemple, /lib64/ld-linux-x86-64.so.2), mais Alpine n'a pas de lien symbolique direct vers cette bibliothèque.

Pour résoudre ce problème , exécutez la commande suivante dans le Dockerfile :

RUN mkdir /lib64 && ln -s /lib/libc.musl-x86_64.so.1 /lib64/ld-linux-x86-64.so.2

Cette commande crée le lien symbolique nécessaire entre les bibliothèques dynamiques compatibles, permettant au binaire Go personnalisé de trouver le fichier requis dépendances et exécuter avec succès.

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!

Déclaration:
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