Heim >Backend-Entwicklung >Golang >Wie behebe ich den Docker-Fehler „standard_init_linux.go:190: exec-Benutzerprozess verursachte „keine solche Datei oder kein solches Verzeichnis'' in einer Go-Web-App?

Wie behebe ich den Docker-Fehler „standard_init_linux.go:190: exec-Benutzerprozess verursachte „keine solche Datei oder kein solches Verzeichnis'' in einer Go-Web-App?

Susan Sarandon
Susan SarandonOriginal
2024-12-18 16:54:14165Durchsuche

How to Fix Docker's

Behebung des Docker-Fehlers: „standard_init_linux.go:190: exec-Benutzerprozess verursachte „keine solche Datei oder kein solches Verzeichnis““ mit einer Go-Web-App

Beim Ausführen einer Basic Go-Webanwendung in Docker, kann es zu einer Fehlermeldung kommen, die besagt: „standard_init_linux.go:190: exec-Benutzerprozess verursacht „keine solche Datei oder“. Verzeichnis"." Dieses Problem tritt aufgrund einer fehlenden Datei, eines Skriptinterpreters oder einer ausführbaren Bibliothek auf.

In diesem Fall umfasst der Netzimport libc als dynamisch verknüpfte Binärdatei. Um das Problem zu beheben, müssen Sie während der Kompilierung zusätzliche Flags angeben:

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

Erklärung der Flags:

  • CGO_ENABLED=0: Deaktiviert Cgo, das für die Schnittstelle mit C verwendet wird code.
  • GOOS=linux: Gibt das Zielbetriebssystem als Linux an.
  • GOARCH=amd64: Gibt die Zielarchitektur als amd64 (64) an -bit).
  • -a: Baut alle Go neu auf Dateien.
  • -tags netgo: Markiert das Programm zur Verwendung des Net-Pakets der Go-Standardbibliothek.
  • -ldflags '-w': Erstellt eine statisch verknüpfte ausführbare Datei (entfernt Abhängigkeiten von gemeinsam genutzten Bibliotheken).
  • -o mybin: Gibt den Binärnamen der Ausgabe als „mybin“ an.

Durch die Verwendung dieser Flags erstellen Sie eine statisch verknüpfte ausführbare Datei, die nicht von externen Bibliotheken abhängig ist. Dies sollte den Fehler „Keine solche Datei oder kein solches Verzeichnis“ beheben, wenn die Anwendung in Docker ausgeführt wird.

Das obige ist der detaillierte Inhalt vonWie behebe ich den Docker-Fehler „standard_init_linux.go:190: exec-Benutzerprozess verursachte „keine solche Datei oder kein solches Verzeichnis'' in einer Go-Web-App?. 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