Ich verwende Linux (RHEL8) und versuche, podman
in ein internes Quay-Register zu pushen, aber ich erhalte beim Ausführen eine Fehlermeldung bezüglich des „Bearer-Tokens“ podman push
, wie unten dargestellt:
podman login -u="quay_robot_username" -p="quay_robot_password" quay.companydomain.com
Login Succeeded!
podman push f8f914cef1ce0cc6314355ae5d16c6d5faf96e595fa1332cf40d26f9c53b9c07 quay.companydomain.com/organization/repository/a890f2e
Getting image source signatures
Error: trying to reuse blob sha256:0c23ed2428e1ef41fdb571789f6968dd47c95135311b1c8bf56462c98581694b at destination: Requesting bearer token: invalid status code from registry 400 (Bad Request)
Für Benutzername und Passwort verwende ich einen Quay-Roboter, der Schreibberechtigung für das Quay-Repository hat.
Authorization: Bearer <mytoken>
Ich verstehe, dass Quay in den HTTP-Anforderungsheadern sucht .
Es wäre schön, die Header der generierten HTTP-Anfragen zu sehen, um podman push
das Vorhandensein oder Fehlen des Bearer-Tokens in den Headern zu überprüfen. Angesichts des Fehlers gehe ich jedoch davon aus, dass es nicht vorhanden ist.
Zwei Fragen:
- Wie bekomme ich den Bearer-Token – falls ich ihn noch nicht habe?
Ich habe in meiner Quay-Organisation eine OAuth-Anwendung erstellt und dort einen Zugriffstoken generiert, den ich erfolgreich in einer Curl-Anfrage verwenden konnte:
curl -X GET -H "Authorization: Bearer <mytoken>" https://quay.companydomain.com/api/v1/repository/organization/myrepository/tag/ | jq
Funktioniert dieses Token für das podman push
?
- Wenn ich das Token habe, wie füge ich es in die
podman push
HTTP-Anfrage des Befehls ein?
Hinweis: Ich habe es über eine GitHub-Aktion initiiert, aber der Einfachheit halber versuche ich nur, es über die Befehlszeile zum Laufen zu bringen (ich erhalte in beiden Fällen denselben Fehler).