Я работаю в Linux (RHEL8) и пытаюсь использовать его podman
для отправки во внутренний реестр Quay, но при выполнении получаю сообщение об ошибке «токен носителя» 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.
Я понимаю, что quay ищет Authorization: Bearer <mytoken>
в заголовках http-запроса.
Было бы неплохо увидеть заголовки http-запросов, сгенерированных podman push
для проверки наличия или отсутствия токена носителя в заголовках. Но, учитывая ошибку, я предполагаю, что его нет.
Два вопроса:
- Как получить токен на предъявителя, если у меня его еще нет?
Я создал приложение Oauth в своей организации Quay и сгенерировал там токен доступа, который мне удалось успешно использовать в запросе Curl:
curl -X GET -H "Authorization: Bearer <mytoken>" https://quay.companydomain.com/api/v1/repository/organization/myrepository/tag/ | jq
Будет ли этот токен работать для podman push
?
- Получив токен, как мне включить его в
podman push
http-запрос команды?
Примечание: я инициировал его из действия на GitHub, но для простоты я просто пытаюсь заставить его работать в командной строке (в любом случае я получаю одну и ту же ошибку).