Erreur d'exécution de l'image Docker : "Aucun fichier ou répertoire de ce type" lors de l'exécution de Go Web App
Une image Docker récemment créée rencontre une erreur lors de l'exécution, affichage du message "standard_init_linux.go:190 : le processus utilisateur exec a provoqué "aucun fichier ou répertoire de ce type"." Cette erreur empêche l'application Web Go de s'exécuter correctement dans le conteneur Docker.
La cause première de cette erreur réside dans un fichier manquant, un script manquant de son interpréteur ou un exécutable dépourvu d'une bibliothèque requise. Dans ce cas, l'importation du package "net" dans le code Go entraîne l'inclusion automatique de la libc en tant que binaire lié dynamiquement. Pour vérifier cela, utilisez la commande "ldd" sur le binaire.
Pour résoudre ce problème, des indicateurs de build supplémentaires doivent être fournis :
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -a -tags netgo -ldflags '-w' -o mybin *.go
Ces indicateurs désactivent CGO (le build du compilateur Go -en support pour C), spécifiez le système d'exploitation et l'architecture cibles, et produisez un binaire lié statiquement. Cela garantit que toutes les bibliothèques nécessaires sont intégrées dans l'exécutable, éliminant ainsi le besoin de dépendances externes.
En incorporant ces indicateurs pendant le processus de construction Go, l'image Docker résultante inclura les dépendances requises et le message d'erreur sera résolu, permettant à l'application Web Go de s'exécuter avec succès dans le 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!