Subir una imagen a un ACR de Azure Usando Podman
Un buen reemplazo para docker es podman, no necesita tener un proceso corriendo como demonio y mejor aún es que no necesita correr como root lo que nos da mayor seguridad, el problema es que las herramientas recien se estan adaptando y por lo tanto no traen una integración transparente, pero esto no es mayor problema, en este caso explicare brevemente como usarlo junto con los ACRs de Azure.
Problema
Normalmente usando Docker solo tenemos que usar el siguiente comando para dejar logueado:
az acr login --name [ACR_NAME]
Pero este comando da error si usas podman
az acr login -n my_acrYou may want to use 'az acr login -n my_acr --expose-token' to get an access token, which does not require Docker to be installed.
An error occurred: DOCKER_COMMAND_ERROR
Emulate Docker CLI using podman. Create /etc/containers/nodocker to quiet msg.
Solución
El mensaje ya nos da una idea az acr login -n my_acr --expose-token
, básicamente haremos un logueo en dos pasos, el primero.
- Obtener el token
az acr login -n my_acr --expose-tokenAccessToken LoginServer
------------------------------------------ --------------------- eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImt... my_acr.azurecr.io
2. Loguearse usando podman y el toquen
podman login \
--username 00000000-0000-0000-0000-000000000000 \
--password eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImt... \
my_acr.azurecr.ioLogin Succeeded!
en el username se pasa un valor en duro 00000000–0000–0000–0000–000000000000
y en password pasaremos todo el token que previamente sacamos.
Una alternativa es pasar estas credenciales en el momento de subir la imagen
podman push --creds=00000000-0000-0000-0000-000000000000:eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImt... my_acr.azurecr.io/my_custom_imagen:0.0.0-19-faecaa74
Espero que esto les sea útil, pronto publicaré otra entrada de como configurar podman con su intellij idea.