Heim >Backend-Entwicklung >Golang >Warum schlägt meine Go Docker-Webanwendung mit der Fehlermeldung „Keine solche Datei oder kein solches Verzeichnis' fehl?
Docker mit Go Basic Web App ausführen: Fehler „Keine solche Datei oder kein solches Verzeichnis“
Beim Versuch, eine einfache Webanwendung in Go auszuführen Bei Verwendung von Docker kann bei Benutzern der folgende Fehler auftreten:
standard_init_linux.go:190: exec user process caused "no such file or directory"
Dieser Fehler tritt auf, weil in der ausführbaren Binärdatei für die Webanwendung eine erforderliche Bibliothek fehlt oder Dolmetscher. In diesem speziellen Fall fehlt die libc-Bibliothek, die standardmäßig dynamisch mit der Binärdatei verknüpft wird, wenn das Netzpaket importiert wird.
Um dieses Problem zu beheben, können die folgenden Schritte unternommen werden:
Kompilieren Sie die Binärdatei mit Cross-Compilation-Flags:
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -a -tags netgo -ldflags '-w' -o mybin *.go
Diese Flags deaktivieren die Kreuzkompilierung, geben das Zielbetriebssystem und die Zielarchitektur an und entfernen Debugging-Informationen aus der Binärdatei.
Verwenden Sie die kompilierte Binärdatei im Docker-Image:
Ersetzen Sie die CMD-Anweisung in der Docker-Datei durch die Folgendes:
CMD ["mybin"]
Durch Befolgen dieser Schritte kann der Benutzer die Go-Webanwendungsbinärdatei korrekt kompilieren, die erforderlichen Bibliotheken verknüpfen und den Fehler „Keine solche Datei oder kein solches Verzeichnis“ beseitigen, wenn Ausführen der Anwendung in einem Docker-Container.
Das obige ist der detaillierte Inhalt vonWarum schlägt meine Go Docker-Webanwendung mit der Fehlermeldung „Keine solche Datei oder kein solches Verzeichnis' fehl?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!