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?
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!