Podman を Quay にプッシュすると、「ベアラー トークンを要求しています: レジストリからのステータス コードが無効です 400 (不正な要求)」という結果になります

Podman を Quay にプッシュすると、「ベアラー トークンを要求しています: レジストリからのステータス コードが無効です 400 (不正な要求)」という結果になります

Linux (RHEL8) を使用して内部の Quay レジストリにプッシュしようとしていますが、 を実行すると、以下に示すようにpodman「ベアラー トークン」に関するエラーが発生します。podman push

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)

ユーザー名とパスワードについては、quay リポジトリへの書き込み権限を持つ quay ロボットを使用しています。

Authorization: Bearer <mytoken>quay がhttp リクエスト ヘッダーで探していることを理解しています。

によって生成された http リクエストのヘッダーを見て、ヘッダーにベアラー トークンが存在するかどうかを確認することができれば便利ですpodman push。ただし、エラーを考えると、存在しないものと想定しています。

2つの質問:

  1. まだ持っていない場合、ベアラートークンを取得するにはどうすればいいですか?

私は自分の Quay 組織に Oauth アプリケーションを作成し、そこでアクセス トークンを生成しました。これは、curl リクエストで正常に使用できました。

curl -X GET -H "Authorization: Bearer <mytoken>" https://quay.companydomain.com/api/v1/repository/organization/myrepository/tag/    | jq

そのトークンは で機能しますかpodman push?

  1. トークンを取得したら、それをpodman pushコマンドの http リクエストに含めるにはどうすればよいですか?

注: 私はこれを github アクションから開始していましたが、物事を単純化するために、コマンド ラインで動作するようにしようとしています (どちらの方法でも同じエラーが発生します)。

関連情報