Heim >Backend-Entwicklung >Golang >Wie behebe ich den Fehler „Keine solche Datei oder kein solches Verzeichnis' bei der Verwendung von Docker Scratch Images?
Fehlerbehebung „Keine solche Datei oder kein solches Verzeichnis“ mit Docker-Scratch-Image
Beim Erstellen eines Docker-Images mit einem Scratch-Basis-Image kann dies passieren Es kommt der Fehler „standard_init_linux.go:207: exec-Benutzerprozess verursacht „keine solche Datei oder kein solches Verzeichnis““. Dieses Problem kann auftreten, wenn bestimmte Abhängigkeiten oder Bibliotheken im Scratch-Image nicht verfügbar sind.
Mögliche Ursachen
Der Fehler weist normalerweise darauf hin, dass die ausführbare Binärdatei fehlt oder falsch benannt ist . Alternativ könnte es bedeuten, dass die Binärdatei dynamisch mit einer Bibliothek verknüpft ist, die nicht im Scratch-Image vorhanden ist.
Lösung: Deaktivieren Sie CGO
Um dieses Problem zu beheben, Erwägen Sie, CGO (C Go) während des Go-Build-Prozesses zu deaktivieren. CGO ist eine Funktion, die es Go-Programmen ermöglicht, mit nativem C-Code zu interagieren, aber es kann zu dynamischen Links zur C-Standardbibliothek (libc) führen.
Durch die Deaktivierung von CGO stellen Sie sicher, dass die Binärdatei ohne statische Verknüpfung ist eventuelle externe Abhängigkeiten. Verwenden Sie den folgenden Befehl, um CGO zu deaktivieren:
RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build \ -ldflags="-w -s" -o $PROJ_BIN_PATH ./cmd/...
Auf dynamische Links prüfen
Nachdem Sie das Image erstellt haben, können Sie mit dem Befehl ldd nach dynamischen Links suchen die Binärdatei:
docker build --target=0 -t your_go_image . docker run -it --rm your_go_image ldd /$PROJ_NAME
Wenn die Ausgabe von ldd dynamische Links anzeigt, müssen Sie diese Abhängigkeiten möglicherweise untersuchen und sicherstellen, dass sie in der Binärdatei enthalten sind Docker-Image.
Das obige ist der detaillierte Inhalt vonWie behebe ich den Fehler „Keine solche Datei oder kein solches Verzeichnis' bei der Verwendung von Docker Scratch Images?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!