Heim >Backend-Entwicklung >Golang >Warum kann mein Docker-Image mein Go-Paket nicht finden?

Warum kann mein Docker-Image mein Go-Paket nicht finden?

Patricia Arquette
Patricia ArquetteOriginal
2024-11-04 18:20:02547Durchsuche

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

Docker-Build-Problem: Go-Paket kann nicht gefunden werden

Beim Versuch, ein Docker-Image mit einer Go-Anwendung zu erstellen, kann die Fehlermeldung „can „Paket wird nicht geladen: Paket myapp: Paket kann nicht gefunden werden“.

Problemhintergrund

Ihre Docker-Datei weist den Build-Prozess an, alle Dateien in das Image-Stammverzeichnis zu kopieren und dann zu erstellen und führen Sie die myapp-Binärdatei unter /go/bin/myapp aus. Dieser Ansatz führt jedoch zu einem Fehler, da die Binärdatei nicht in diesem Verzeichnis gefunden wird.

Lösung

Ändern Sie stattdessen Ihre Docker-Datei wie folgt:

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

Diese aktualisierte Docker-Datei führt die folgenden Schritte aus:

  1. Kopieren Sie die Projektdateien nach /go/src/myapp im Image.
  2. Setzen Sie das Arbeitsverzeichnis auf /go /src/myapp.
  3. Abhängigkeiten mit dem entsprechenden Abhängigkeitsverwaltungstool installieren.
  4. Die myapp-Binärdatei erstellen und installieren.
  5. Einstiegspunkt festlegen.

Zusätzliche Fehlerbehebung

Bei Bedarf können Sie die Dateistruktur des Containers nach jedem ADD-Befehl mit docker exec überprüfen. ls.

Um das Bild detaillierter zu untersuchen, geben Sie mit docker run --rm -it eine Shell in das generierte Bild ein. /bin/sh.

Das obige ist der detaillierte Inhalt vonWarum kann mein Docker-Image mein Go-Paket nicht finden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn