Subir una imagen a un ACR de Azure Usando Podman

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_acr

You 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.

  1. Obtener el token
az acr login -n my_acr --expose-token

AccessToken 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.io

Login 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-fa..

Espero que esto les sea útil, pronto publicaré otra entrada de como configurar podman con su intellij idea.