es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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?

Tags:  , , , ,

Answer

  1. Avatar for 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:

    - task: Docker@2
      inputs:
        command: 'login'
        containerRegistry: 'acr_name.azurecr.io'
        username: '$(acr_name)'
        password: '$(acr_password)'
    
    - task: Docker@2
      inputs:
        command: 'pull'
        containerRegistry: 'acr_name.azurecr.io'
        repository: 'image_name'
        tag: 'latest'
    

    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.

Comments are closed.