[ Guillermo@Garcia ]# more /var/pub | beer

jueves, 30 de mayo de 2024

Publicando imagen docker a repositorio con Azure Devops


En este ejemplo vamos a subir una imagen docker al repositorio de dockerhub con Azure Devops.

Este manual/tutorial es la continuación de [Cómo conectar un pipeline de Azure DevOps Pipelines con DockerHub](https://www.ahioros.info/2024/05/como-conectar-un-pipeline-de-azure.html) y [Creando una imagen docker de una aplicación en react](https://www.ahioros.info/2024/05/creando-una-imagen-docker-de-una.html) si no los has leído por favor hazlo para que te des una idea de dónde nos quedamos.

Ya que hemos creado nuestro archivo Dockerfile y .dockerignore podemos continuar. Básicamente lo que haremos aquí es:

    1. Vamos a poner en nuestro pipeline la creación de una imagen docker de una aplicación en react.
    2. Luego vamos a subir nuestra imagen en nuestro repositorio de dockerhub.
    

        

Estas dos tareas las haremos en un solo paso (task en este caso).

Tomamos nuestro archivo yaml del pipeline creado anteriormente y le agregamos la tarea de **buildAndPush**.

```yaml
  pr:
    branches:
      include:
        - "*"

  pool:
    vmImage: ubuntu-latest

  stages:
    - stage: LoginAndLogout
      jobs:
        - job: buildandpush
          steps:
            - task: Docker@2
              displayName: Login
              inputs:
                command: login
                containerRegistry: docker-hub-test

            - task: Docker@2
              displayName: BuildAndPush
              inputs:
                command: buildAndPush
                containerRegistry: docker-hub-test
                repository: ahioros/rdicidr
                tags: latest

            - task: Docker@2
              displayName: Logout
              inputs:
                command: logout
                containerRegistry: docker-hub-test
```

**Nota**: En este ejemplo todas las imágenes que subamos tendrán el tag **latest**, esto lo podemos cambiar si deseamos usando el $(Build.BuildId) como tag:
```bash
    	  tags: |
        	$(Build.BuildId)
        	latest
```
Ejecutamos nuestro pipeline con los cambios al finalizar el pipeline vamos a nuestro repositorio dockerhub donde veremos la nueva imagen.

Acá te dejo el video de esta configuración por si tienes dudas: