Bei Nutzung der GitHub Actions zur Erstellung von Docker Images mit einem Push zu ghcr.io kann es zu Fehlern kommen, wenn die Berechtigungen nicht richtig gesetzt sind.
Die Fehlermeldung lautet wie folgt:
ERROR: failed to solve: failed to push ghcr.io/example/example:latest: unexpected status: 403 Forbidden
Error: buildx failed with: ERROR: failed to solve: failed to push ghcr.io/example/example:latest: unexpected status: 403 Forbidden
Dies deutet darauf hin, dass die Workflows keine Schreibrechte haben. Dies können wir anpassen unter: Settings
> Action
> General
> Workflow permissions
des entsprechenden Repositories anpassen.
Dort stellen wir die Berechtigung auf Read and write permissions
. Danach können wir die entsprechende Action erneut starten.
Sollte die Einstellung nicht setzbar sein, muss diese zuerst in den Einstellungen des Firmenkontos, in der das Repository liegt, an gleicher Stelle gesetzt werden. Die Einstellung dort gibt die Möglichkeiten aller Repositories vor und kann das Setzen der Option aktiv verhindern.
Bleibt die Fehlermeldung bestehen?
Prüfen wir als Nächstes den Zugriff von GitHub Actions auf das entsprechende Package, dazu gehen wir in den Bereich Packages
innerhalb des Repositories oder des Firmenaccounts, rufen dort das existierende Package auf und gehen im unteren rechten Bereich auf Package settings
. Dort schauen wir unter Manage Actions access
und fügen das Repository hinzu, welches die Action Workflows startet. Danach müssen wir noch den Access von Read
auf Write
umstellen.