Estoy en Linux (RHEL8) tratando de usar podman
para enviar a un registro de muelle interno, pero aparece un error sobre el "token de portador" cuando ejecuto el podman push
, como se muestra a continuación:
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)
Para el nombre de usuario y la contraseña, estoy usando un robot de Quay que tiene permiso de escritura para el repositorio de Quay.
Entiendo que quay está buscando Authorization: Bearer <mytoken>
en los encabezados de solicitud http.
Sería bueno ver los encabezados de las solicitudes http generadas por podman push
para verificar la presencia o ausencia del token de portador en los encabezados. Pero, dado el error, supongo que no está presente.
Dos preguntas:
- ¿Cómo obtengo el token al portador si aún no lo tengo?
Creé una aplicación Oauth en mi organización de muelle y generé un token de acceso allí, que pude usar con éxito en una solicitud curl:
curl -X GET -H "Authorization: Bearer <mytoken>" https://quay.companydomain.com/api/v1/repository/organization/myrepository/tag/ | jq
¿Ese token funcionará para podman push
?
- Una vez que tengo el token, ¿cómo lo incluyo en la
podman push
solicitud http del comando?
Nota: Lo estaba iniciando desde una acción de github, pero para simplificar las cosas, solo intento que funcione en la línea de comando (recibo el mismo error de cualquier manera).