quay.io ist eine Container-Registry von RedHat. Dort finden sich unter der Organisation lib/* Container für beliebte Pakete wie nginx, redis und php.
Seit neustem schlagen Builds mit einem 405 METHOD NOT ALLOWED fehl. Leider ergibt sich aus der Fehlermeldung nicht offensichtlich was passiert ist.
[1/2] STEP 1/4: FROM quay.io/lib/composer:2.8.11 AS composer
Trying to pull quay.io/lib/composer:2.8.11...
Error: creating build container: unable to copy from source docker://quay.io/lib/composer:2.8.11: initializing source docker://quay.io/lib/composer:2.8.11: Requesting bearer token: received unexpected HTTP status: 405 METHOD NOT ALLOWED
⚙️ [runner]: exitcode '125': failure
Ich konnte nach einiger Fehlersuche ausschließen, dass es sich um einen podman oder Forgejo Action Fehler handelt. Der Fehler tritt vermeintlich nur bei der gesamten quay.io Registry auf.
Woran liegt es also? Auf dem Runner OS versuche ich mit podman das Image händisch mit Log-Level Debug abzurufen. Es erscheint die v2/auth Route die den Ursprung des Fehlers zeigt. Die Organisation bzw. der Namespace wurde deaktiviert.
podman pull quay.io/lib/composer:2.8.11 --log-level debug
// https://quay.io/v2/auth?scope=repository%3Alib%2Fcomposer%3Apull&service=quay.io
{
"errors": [
{
"code": "DENIED",
"detail": {},
"message": "Namespace lib has been disabled. Please contact a system administrator."
}
]
}
Mit der Fehlermeldung finden wir einen Eintrag in Google Groups

Es ist also nicht die gesamte quay.io Registry betroffen sondern nur von lib gehostete Container. Referenzen auf quay.io/lib/* müssen daher entfernt werden und gegen einen alternativen Host ersetzt werden. Für composer finden sich Alternativen z.B. bei AWS ECR, GHCR oder DockerHub.