Beim Versuch, ein Docker-Image mithilfe eines lokalen Pakets zu erstellen, stoßen Benutzer möglicherweise auf den Fehler „import Pfad beginnt nicht mit Hostname.“ Dieses Problem tritt auf, wenn eine Docker-Datei erstellt wird, die ein lokales Paket als Abhängigkeit verwenden soll.
Für eine einfache Docker-Datei erstellen Benutzer normalerweise eine Datei ähnlich der folgenden:
FROM golang:onbuild EXPOSE 8080
Dieses Format folgt dem Ansatz, der im Artikel „Bereitstellen von Go-Servern mit Docker“ beschrieben wird. Bei der Integration von Code aus „git-go-websiteskeleton“ als Build-Quelle kann der folgende Fehler auftreten:
import "git-go-websiteskeleton/app/common": import path does not begin with hostname package git-go-websiteskeleton/app/common: unrecognized import path "git-go-websiteskeleton/app/common" import "git-go-websiteskeleton/app/home": import path does not begin with hostname package git-go-websiteskeleton/app/home: unrecognized import path "git-go-websiteskeleton/app/home" import "git-go-websiteskeleton/app/user": import path does not begin with hostname package git-go-websiteskeleton/app/user: unrecognized import path "git-go-websiteskeleton/app/user"
Die zugrunde liegende Ursache besteht darin, dass der Anwendungsbuild innerhalb des Docker-Containers erfolgt und erfordert, dass auf Abhängigkeiten zugegriffen werden kann während des gesamten Prozesses.
Um diesen Fehler zu beheben, gehen Sie über die grundlegende Syntax von „golang:onbuild“ hinaus. Erstellen Sie eine benutzerdefinierte Docker-Datei mit detaillierten Schritten zum Erstellen Ihrer Anwendung. Passen Sie den Inhalt basierend auf den Besonderheiten Ihres Projekts an und verwenden Sie möglicherweise eine Struktur wie:
FROM golang:1.6 ADD . /go/src/yourapplication RUN go get github.com/jadekler/git-go-websiteskeleton RUN go install yourapplication ENTRYPOINT /go/bin/yourapplication EXPOSE 8080
Dadurch wird die Docker-Datei so geändert, dass Ihr Quellcode und Ihre Abhängigkeit in den Container integriert werden. Anschließend erstellt es Ihre Anwendung, initiiert deren Ausführung und weist Port 8080 für den externen Zugriff zu.
Das obige ist der detaillierte Inhalt vonWarum erhalte ich beim Erstellen eines Docker-Images die Fehlermeldung „Der Importpfad beginnt nicht mit dem Hostnamen'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!