"aucun fichier ou répertoire de ce type" avec Docker Scratch Image : résolu
Lors de l'utilisation de l'image scratch de Docker, vous pouvez rencontrer l'erreur "non tel fichier ou répertoire" lors de l'exécution d'un binaire. Cette erreur provient souvent du fait que le binaire est lié dynamiquement à une bibliothèque qui n'existe pas dans l'image.
Pour remédier à ce problème, désactivez CGO (C Go) :
RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build \ -ldflags="-w -s" -o $PROJ_BIN_PATH ./cmd/...
Liens CGO aux bibliothèques système, ce qui peut entraîner des problèmes dans une image de travail. En désactivant CGO, vous vous assurez que le binaire est lié statiquement et ne dépend pas de bibliothèques externes.
De plus, vous pouvez vérifier les liens dynamiques dans votre binaire en utilisant ldd :
docker build --target=0 -t your_go_image . docker run -it --rm your_go_image ldd /$PROJ_NAME
Ceci La commande listera toutes les bibliothèques auxquelles le binaire est lié. Si ldd renvoie "pas un exécutable dynamique", le binaire est lié statiquement.
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!