Beim Erstellen eines Docker-Images mit einer Go-Anwendung kann der Fehler „Paket kann nicht gefunden werden“ auftreten frustrierend. Lassen Sie uns das Problem untersuchen und eine Lösung anbieten.
Der Fehler entsteht, wenn die Docker-Datei die Projektdateien in das Image-Stammverzeichnis kopiert, ohne Abhängigkeiten zu installieren oder die Binärdatei korrekt zu erstellen. Diese Nichtübereinstimmung führt dazu, dass das System nach einer Binärdatei sucht, die am vorgesehenen Speicherort (/go/bin/myapp) nicht vorhanden ist.
Um dieses Problem zu beheben, empfehlen wir die Verwendung einer Dockerfile-Struktur wie der folgenden:
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 Docker-Datei wird:
Um die Datei weiter zu debuggen Problem: Sie können Docker Exec verwenden, um ls oder einen anderen Befehl auszuführen. Zum Beispiel:
docker exec <image name/hash> ls
Zusätzlich können Sie die Hülle in das generierte Bild eingeben mit:
docker run --rm -it <image hash/name> /bin/sh
Dadurch können Sie das Bild erkunden und ein tieferes Verständnis seiner Struktur gewinnen.
Das obige ist der detaillierte Inhalt vonWarum kann mein Docker-Image mein Go-Paket nicht finden: Eine Lösung für den Fehler „Paket kann nicht gefunden werden'.. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!