Maison  >  Article  >  développement back-end  >  Pourquoi mon image Docker ne parvient-elle pas à trouver mon package Go ?

Pourquoi mon image Docker ne parvient-elle pas à trouver mon package Go ?

Patricia Arquette
Patricia Arquetteoriginal
2024-11-04 18:20:02441parcourir

Why Can't My Docker Image Find My Go Package?

Problème de construction de Docker : impossible de trouver le package Go

En essayant de créer une image Docker avec une application Go, vous pouvez rencontrer l'erreur « peut "Je ne charge pas le package : package myapp : impossible de trouver le package".

Contexte du problème

Votre Dockerfile ordonne au processus de construction de copier tous les fichiers à la racine de l'image, puis de créer et exécutez le binaire myapp depuis /go/bin/myapp. Cependant, cette approche entraîne une erreur car le binaire est introuvable dans ce répertoire.

Solution

Modifiez plutôt votre Dockerfile comme suit :

FROM golang:1.9.2
ADD . /go/src/myapp
WORKDIR /go/src/myapp
RUN go get myapp
RUN go install
ENTRYPOINT ["/go/bin/myapp"]

Ce Dockerfile mis à jour effectuera les étapes suivantes :

  1. Copiez les fichiers du projet dans /go/src/myapp dans l'image.
  2. Définissez le répertoire de travail sur /go /src/myapp.
  3. Installez les dépendances à l'aide de l'outil de gestion des dépendances approprié.
  4. Créez et installez le binaire myapp.
  5. Définissez le point d'entrée.

Dépannage supplémentaire

Si nécessaire, vous pouvez vérifier la structure des fichiers du conteneur après chaque commande ADD à l'aide de docker exec ls.

Pour inspecter l'image plus en détail, entrez un shell dans l'image générée à l'aide de docker run --rm -it /bin/sh.

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