Heim >Backend-Entwicklung >Golang >Warum schlägt meine Go-Web-App in Docker mit „standard_init_linux.go:190: exec-Benutzerprozess verursacht „keine solche Datei oder kein solches Verzeichnis'' fehl?

Warum schlägt meine Go-Web-App in Docker mit „standard_init_linux.go:190: exec-Benutzerprozess verursacht „keine solche Datei oder kein solches Verzeichnis'' fehl?

Linda Hamilton
Linda HamiltonOriginal
2024-12-14 22:20:18352Durchsuche

Why Does My Go Web App in Docker Fail with

Docker-Image-Fehler: „standard_init_linux.go:190: exec-Benutzerprozess verursachte „keine solche Datei oder kein solches Verzeichnis“ beim Ausführen der Go Web App

Diese Fehlermeldung weist darauf hin, dass das Docker-Image den angegebenen Benutzerprozess nicht finden oder ausführen kann. Das Problem ist auf fehlende Abhängigkeiten oder eine fehlerhafte Kompilierung zurückzuführen Parameter.

Stellen Sie beim Erstellen der Go-Webanwendung sicher, dass die Datei webapp.go die erforderlichen Pakete importiert, z. B. das Netzpaket. Darüber hinaus enthält der Netzimport standardmäßig libc als dynamisch verknüpfte Binärdatei im Docker-Image fehlen.

Um dieses Problem zu beheben, verwenden Sie die folgenden Kompilierungsparameter:

CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -a -tags netgo -ldflags '-w' -o mybin *.go

Durch Angabe von CGO_ENABLED=0, Sie deaktivieren CGO (Gos Mechanismus zum Aufrufen von C-Funktionen) und erzwingen die reine Go-Kompilierung, wodurch libc=linux und GOARCH=amd64 nicht mehr erforderlich sind, um die Zielplattform und -architektur anzugeben, und -ldflags '-. w' entfernt unnötige Informationen aus der Binärdatei.

Erstellen Sie nach der Neukompilierung mit diesen Parametern das Docker-Image und führen Sie es aus. Der Fehler sollte nun behoben sein und die Web-App sollte innerhalb des Containers ordnungsgemäß funktionieren.

Das obige ist der detaillierte Inhalt vonWarum schlägt meine Go-Web-App in Docker mit „standard_init_linux.go:190: exec-Benutzerprozess verursacht „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