Maison >développement back-end >Golang >Pourquoi My Go Docker Web App échoue-t-elle avec une erreur « aucun fichier ou répertoire de ce type » ?

Pourquoi My Go Docker Web App échoue-t-elle avec une erreur « aucun fichier ou répertoire de ce type » ?

Barbara Streisand
Barbara Streisandoriginal
2024-12-16 21:43:14178parcourir

Why Does My Go Docker Web App Fail with a

Exécution de Docker avec l'application Web Go Basic : erreur "aucun fichier ou répertoire de ce type"

Lors de la tentative d'exécution d'une application Web de base dans Go en utilisant Docker, les utilisateurs peuvent rencontrer l'erreur suivante :

standard_init_linux.go:190: exec user process caused "no such file or directory"

Cette erreur se produit car il manque une bibliothèque requise dans l'exécutable binaire de l'application Web ou interprète. Dans ce cas précis, il manque la bibliothèque libc, qui est liée dynamiquement au binaire par défaut lors de l'importation du package net.

Pour résoudre ce problème, les étapes suivantes peuvent être suivies :

  1. Compilez le binaire avec des indicateurs de compilation croisée :

    CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -a -tags netgo -ldflags '-w' -o mybin *.go

    Ces indicateurs désactivez la compilation croisée, spécifiez le système d'exploitation et l'architecture cibles et supprimez les informations de débogage du binaire.

  2. Utilisez le binaire compilé dans l'image Docker :

    Remplacez l'instruction CMD dans le Dockerfile par le suivant :

    CMD ["mybin"]

En suivant ces étapes, l'utilisateur peut compiler correctement le binaire de l'application Web Go, en reliant les bibliothèques nécessaires et en éliminant l'erreur « aucun fichier ou répertoire de ce type » lorsque exécuter l'application dans un conteneur Docker.

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