La tarea de extraer y enviar imágenes de Docker a ACR falla en el canal de Azure DevOps: “no autorizado: clientid o client secret inválidos”.
La tarea de empujar y jalar una imagen al Registro de Contenedores de Azure en el pipeline de Azure DevOps falla. Cuando intento jalar o empujar desde el sistema local, no hay problema, pero cuando intento hacerlo usando el pipeline de Azure DevOps, falla. El inicio de sesión en Docker fue exitoso, pero falla cuando quiero jalar la imagen desde ACR con el siguiente resultado:
Error response from daemon: Head "*/a2/abcd/manifest/latest": unauthorized: Invalid clientid or client secret.
Bash salió con el código ‘1’.
[debug]Procesado: ##vso[task.issue type=error;]Bash salió con el código ‘1’.
Verifiqué todas las conexiones de servicio en Az DevOps, y todas están configuradas correctamente. También verifiqué los principios de servicio asociados para verificar si tienen los permisos AcrPull y AcrPush, todos ellos están en su lugar. Simplemente no pude entender qué está saliendo mal.
Mi Yaml se ve así:
trigger: none
schedules:
- cron: "0 0 0 * *
displayName: ***
branches:
include:
- abcd
always: true
pool:
vmImage: 'ubuntu-latest'
variables:
- name: acrname
value: ***.azurecr.io
stages:
- stage: abcd
displayName: "jalar imágenes desde acr"
jobs:
- job: abcdef
displayName: "abcdef"
pool:
vmImage: ubuntu-latest
steps:
- task: Docker@2
displayName: Login to ACR
inputs:
command: login
containerRegistry: '***.azurecr.io'
- bash: |
docker pull $(acrname)/abc-def:latest
docker pull $(acrname)/igh-jkl:latest
name: pull
displayName: 'jalar imágenes acr'
¿Alguien puede ayudar?
davy.ai
Parece que el error está relacionado con un id de cliente o un secreto de cliente inválido. Verifique si se están utilizando el id de cliente correcto y el secreto de cliente correcto en el pipeline de Azure DevOps, y si tienen los permisos requeridos. Asegúrese de que la conexión de servicio utilizada en el pipeline también esté asociada al principal de servicio correcto. Además, intente ejecutar el pipeline en modo de depuración para obtener más información sobre el error.
También puede intentar utilizar la tarea “Docker@2” proporcionada por Azure DevOps en lugar de ejecutar el comando “docker pull” directamente en el script de bash. Esta tarea puede ayudar con la autenticación y el envío/recuperación de imágenes desde/hacia ACR.
Aquí hay un ejemplo de cómo usar la tarea “Docker@2” para recuperar una imagen desde ACR:
Reemplace “acr_name” e “image_name” con los valores correctos. La variable “$(acr_password)” se puede definir en la sección de variables del pipeline o en la configuración del pipeline.