Inserción de una imagen
Azure Pipelines
Azure Pipelines se puede usar para insertar imágenes en registros de contenedor, como Azure Container Registry (ACR), Docker Hub, Registros de contenedor de Google, etc.
Paso de inserción en la canalización
El siguiente fragmento de código YAML muestra el uso de la conexión del servicio de registro de Docker junto con una tarea de Docker para iniciar sesión e insertar en un registro de contenedor. Las instancias de la conexión del servicio de registro de Docker sirven como opciones seguras para almacenar las credenciales necesarias para iniciar sesión en el registro de contenedor antes de insertar la imagen. Se puede hacer referencia directamente a estas conexiones de servicio en la tarea de Docker para iniciar sesión en el registro sin necesidad de agregar una tarea de script para el inicio de sesión de Docker y la configuración de variables secretas para el nombre de usuario y la contraseña.
- task: Docker@2
displayName: Push image
inputs:
containerRegistry: |
$(dockerHub)
repository: $(imageName)
command: push
tags: |
test1
test2
Azure Container Registry
En Azure Container Registry opción de conexión del servicio de registro de Docker,se puede elegir la suscripción (asociada a la identidad AAD del usuario que ha iniciado sesión en Azure DevOps) y el registro de contenedor dentro de la suscripción para crear la conexión de servicio. Posteriormente, se puede hacer referencia a estas conexiones de servicio desde una tarea de canalización, como se muestra en el fragmento de código de YAML anterior.
Para crear una nueva canalización para un repositorio que contiene Dockerfile, el documento Build and Push to Azure Container Registry describe la plantilla de Docker recomendada automáticamente por Azure Pipelines al detectar Dockerfile en el repositorio. La suscripción de Azure y las entradas Azure Container Registry proporcionadas para la configuración de plantilla las usa Azure Pipelines para crear automáticamente la conexión de servicio del registro de Docker e incluso construir una canalización de compilación e inserción en funcionamiento haciendo referencia a la conexión de servicio creada.
Docker Hub
Elija la opción Docker Hub conexión del servicio del registro de Docker y proporcione el nombre de usuario y la contraseña necesarios para comprobar y crear la conexión de servicio.
Google Container Registry
Los pasos siguientes le indican cómo crear una conexión de servicio de registro de Docker asociada a Google Container Registry:
Abra el proyecto en la consola de GCP y, a continuación, abra Cloud Shell
Para ahorrar tiempo escribiendo el identificador del proyecto y las opciones de zona del motor de proceso, establezca los valores de configuración predeterminados mediante la ejecución de los siguientes comandos:
gcloud config set project [PROJECT_NAME] gcloud config set compute/zone [ZONE]Reemplace por el nombre del proyecto de GCP y reemplace por el nombre de la zona que va a
[PROJECT_NAME][ZONE]usar para crear recursos. Si no está seguro de qué zona elegir, useus-central1-a. Por ejemplo:gcloud config set project azure-pipelines-test-project-12345 gcloud config set compute/zone us-central1-aHabilite la API Container Registry para el proyecto:
gcloud services enable containerregistry.googleapis.comCree una cuenta de servicio para Azure Pipelines publicar imágenes de Docker:
gcloud iam service-accounts create azure-pipelines-publisher --display-name "Azure Pipelines Publisher"Asigne el Storage iam de administrador a la cuenta de servicio:
PROJECT_NUMBER=$(gcloud projects describe \ $(gcloud config get-value core/project) \ --format='value(projectNumber)') AZURE_PIPELINES_PUBLISHER=$(gcloud iam service-accounts list \ --filter="displayName:Azure Pipelines Publisher" \ --format='value(email)') gcloud projects add-iam-policy-binding \ $(gcloud config get-value core/project) \ --member serviceAccount:$AZURE_PIPELINES_PUBLISHER \ --role roles/storage.adminGenerar una clave de cuenta de servicio:
gcloud iam service-accounts keys create \ azure-pipelines-publisher.json --iam-account $AZURE_PIPELINES_PUBLISHER tr -d '\n' < azure-pipelines-publisher.json > azure-pipelines-publisher-oneline.jsonInicie el Editor de código haciendo clic en el botón de la esquina superior derecha de Cloud Shell:

Abra el archivo
named azure-pipelines-publisher-oneline.json. Necesitará el contenido de este archivo en uno de los pasos siguientes:En la Azure DevOps, seleccione Project configuración y, a continuación, seleccione Pipelines - Conexiones de servicio.
Haga clic en Nueva conexión de servicio y elija Docker Registry.
En el cuadro de diálogo, escriba valores para los campos siguientes:
- Docker Registry: , donde es el nombre del proyecto de
[PROJECT-ID]GCP. - Id. de Docker:
- Contraseña de Docker: Pegue el contenido de
- Nombre de la conexión de servicio:
- Haga clic en Guardar para crear la conexión de servicio.