Maison >développement back-end >Golang >Pourquoi l'application Web My Go dans Docker échoue-t-elle avec « standard_init_linux.go:190 : le processus utilisateur d'exécution n'a provoqué « aucun fichier ou répertoire de ce type » » ?
Erreur d'image Docker : "standard_init_linux.go:190 : le processus utilisateur d'exécution n'a provoqué "aucun fichier ou répertoire de ce type" lors de l'exécution de Go Web App
Ce message d'erreur indique que l'image Docker ne peut pas trouver ou exécuter le processus utilisateur spécifié. Le problème provient de dépendances manquantes ou d'une compilation incorrecte. paramètres.
Lors de la création de l'application Web Go, assurez-vous que le fichier webapp.go importe les packages nécessaires, tels que le package net. De plus, l'importation nette inclut la libc par défaut en tant que binaire lié dynamiquement, ce qui peut. être manquant dans l'image Docker.
Pour résoudre ce problème, utilisez les paramètres de compilation suivants :
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -a -tags netgo -ldflags '-w' -o mybin *.go
En spécifiant CGO_ENABLED=0, vous désactivez CGO (le mécanisme de Go pour appeler les fonctions C) et forcez la compilation Go pure, éliminant le besoin de libc=linux et GOARCH=amd64 pour indiquer la plate-forme et l'architecture cibles -a construit un binaire lié statiquement, et -ldflags '-. w' supprime les informations inutiles du binaire.
Après la recompilation avec ces paramètres, créez l'image Docker et exécutez-la. L'erreur devrait maintenant être résolue et l'application Web devrait fonctionner correctement dans le conteneur.
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!