Podmanが桟橋にプッシュすると、「転送者トークン要求:レジストリ400の無効なステータスコード(無効な要求)」が発生します。

Podmanが桟橋にプッシュすると、「転送者トークン要求:レジストリ400の無効なステータスコード(無効な要求)」が発生します。

Linux(RHEL8)で内部桟橋レジストリにプッシュを使用しようとしたときにpodman実行すると、podman push次のような「Bearer Token」のエラーが発生します。

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)

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

Authorization: Bearer <mytoken>私はquayがhttpリクエストヘッダを探していることを知っています。

podman pushヘッダーにフォワーダトークンがあることを確認するには、生成されたhttpリクエストのヘッダーを確認することをお勧めします。ただし、エラーが発生した場合は存在しないと仮定します。

2つの質問:

  1. まだ保有者トークンがない場合、どのように取得できますか?

私の桟橋組織でOauthアプリを作成し、そこからアクセストークンを作成しました。カール要求でこれを正常に使用できました。

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タスクから始めましたが、単純化するためにコマンドラインで動作しようとしました(どちらにしても同じエラーが発生します)。

関連情報