Heim >Backend-Entwicklung >Golang >Warum schlägt meine Go Docker-Webanwendung mit der Fehlermeldung „Keine solche Datei oder kein solches Verzeichnis' fehl?

Warum schlägt meine Go Docker-Webanwendung mit der Fehlermeldung „Keine solche Datei oder kein solches Verzeichnis' fehl?

Barbara Streisand
Barbara StreisandOriginal
2024-12-16 21:43:14178Durchsuche

Why Does My Go Docker Web App Fail with a

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:

  1. 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.

  2. 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!

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