Compila y envía una imagen de Docker con Cloud Build

Aprende a comenzar a usar Cloud Build compilando una imagen de Docker y enviándola a Artifact Registry. Artifact Registry proporciona una ubicación única para administrar imágenes de contenedores de Docker y paquetes privados.

Primero, compilarás la imagen con un Dockerfile, que es el archivo de configuración de Docker y, luego, compilarás la misma imagen con el archivo de configuración de Cloud Build.


Para seguir la guía paso a paso sobre esta tarea directamente en el editor de Cloud Shell, haz clic en Guiarme:

GUIARME


Antes de comenzar

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. Enable the Cloud Build, Compute Engine and Artifact Registry APIs.

    Enable the APIs

  5. Install the Google Cloud CLI.

  6. If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

  7. To initialize the gcloud CLI, run the following command:

    gcloud init
  8. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  9. Make sure that billing is enabled for your Google Cloud project.

  10. Enable the Cloud Build, Compute Engine and Artifact Registry APIs.

    Enable the APIs

  11. Install the Google Cloud CLI.

  12. If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

  13. To initialize the gcloud CLI, run the following command:

    gcloud init
  14. Make sure that you have the following role or roles on the project: Artifact Registry Administrator, Cloud Build Editor, Logs Viewer, Service Account User, Service Usage Admin, Storage Bucket Viewer, Storage Object Creator

    Check for the roles

    1. In the Google Cloud console, go to the IAM page.

      Go to IAM
    2. Select the project.
    3. In the Principal column, find all rows that identify you or a group that you're included in. To learn which groups you're included in, contact your administrator.

    4. For all rows that specify or include you, check the Role column to see whether the list of roles includes the required roles.

    Grant the roles

    1. In the Google Cloud console, go to the IAM page.

      Ir a IAM
    2. Selecciona el proyecto.
    3. Haz clic en Grant access.
    4. En el campo Principales nuevas, ingresa tu identificador de usuario. Esta suele ser la dirección de correo electrónico de una Cuenta de Google.

    5. En la lista Seleccionar un rol, elige un rol.
    6. Para otorgar funciones adicionales, haz clic en Agregar otro rol y agrega cada rol adicional.
    7. Haz clic en Guardar.
    8. Prepara los archivos de código fuente para compilarlos

      Necesitarás un código fuente de muestra para empaquetar en una imagen de contenedor. En esta sección, crearás una secuencia de comandos de shell y un Dockerfile. Un Dockerfile es un documento de texto que contiene instrucciones para que Docker compile una imagen.

      1. Abre una ventana de terminal.

      2. Crea un directorio nuevo llamado quickstart-docker y navega hasta él:

        mkdir quickstart-docker
        cd quickstart-docker
        
      3. Crea un archivo llamado quickstart.sh con el siguiente contenido:

        #!/bin/sh
        echo "Hello, world! The time is $(date)."
      4. Crea un archivo llamado Dockerfile con el siguiente contenido:

        FROM alpine
        COPY quickstart.sh /
        CMD ["/quickstart.sh"]
      5. En la ventana de la terminal, aplica el siguiente comando para permitir que quickstart.sh se pueda ejecutar:

        chmod +x quickstart.sh
        

      Crea un repositorio de Docker en Artifact Registry

      1. Crea un nuevo repositorio de Docker llamado quickstart-docker-repo en la ubicación us-west2 con la descripción “Repositorio de Docker”:

        gcloud artifacts repositories create quickstart-docker-repo --repository-format=docker \
            --location=us-west2 --description="Docker repository"
        
      2. Verifica que se haya creado el repositorio:

        gcloud artifacts repositories list
        

        Verás quickstart-docker-repo en la lista de repositorios que se muestran.

      Compila una imagen con un Dockerfile

      Cloud Build te permite compilar una imagen de Docker mediante un Dockerfile. No se necesita un archivo de configuración de Cloud Build diferente.

      Para compilar mediante un Dockerfile, sigue estos pasos:

      1. Para obtener el ID del proyecto Google Cloud , ejecuta el siguiente comando:

        gcloud config get-value project
        
      2. Ejecuta el siguiente comando desde el directorio que contiene quickstart.sh y Dockerfile:

        gcloud builds submit --region=us-west2 --tag us-west2-docker.pkg.dev/PROJECT_ID/quickstart-docker-repo/quickstart-image:tag1
        

      Una vez completada la compilación, verás un resultado similar al siguiente:

      DONE
      ------------------------------------------------------------------------------------------------------------------------------------
      ID                                    CREATE_TIME                DURATION  SOURCE   IMAGES     STATUS
      545cb89c-f7a4-4652-8f63-579ac974be2e  2020-11-05T18:16:04+00:00  16S       gs://gcb-docs-project_cloudbuild/source/1604600163.528729-b70741b0f2d0449d8635aa22893258fe.tgz  us-west2-docker.pkg.dev/gcb-docs-project/quickstart-docker-repo/quickstart-image:tag1  SUCCESS
      

      Acabas de compilar una imagen de Docker llamada quickstart-image mediante un Dockerfile y enviaste la imagen a Artifact Registry.

      Compila una imagen mediante un archivo de configuración de compilación

      En esta sección, usarás un archivo de configuración de Cloud Build para compilar la misma imagen de Docker que la anterior. El archivo de configuración de compilación indica a Cloud Build que realice tareas según tus especificaciones.

      1. En el mismo directorio que contiene quickstart.sh y Dockerfile, crea un archivo llamado cloudbuild.yaml con el siguiente contenido. Este archivo es tu archivo de configuración de compilación. A la hora de la compilación, Cloud Build reemplaza de forma automática $PROJECT_ID por tu ID del proyecto.

        steps:
        - name: 'gcr.io/cloud-builders/docker'
          script: |
            docker build -t us-west2-docker.pkg.dev/$PROJECT_ID/quickstart-docker-repo/quickstart-image:tag1 .
          automapSubstitutions: true
        images:
        - 'us-west2-docker.pkg.dev/$PROJECT_ID/quickstart-docker-repo/quickstart-image:tag1'
      2. Comienza la compilación ejecutando el siguiente comando:

        gcloud builds submit --region=us-west2 --config cloudbuild.yaml
        

      Cuando se complete la compilación, verás un resultado similar al siguiente:

      DONE
      ------------------------------------------------------------------------------------------------------------------------------------
      ID                                    CREATE_TIME                DURATION  SOURCE          IMAGES          STATUS
      046ddd31-3670-4771-9336-8919e7098b11  2020-11-05T18:24:02+00:00  15S       gs://gcb-docs-project_cloudbuild/source/1604600641.576884-8153be22c94d438aa86c78abf11403eb.tgz  us-west2-docker.pkg.dev/gcb-docs-project/quickstart-docker-repo/quickstart-image:tag1  SUCCESS
      

      Acabas de compilar quickstart-image mediante el archivo de configuración de compilación y enviaste la imagen a Artifact Registry.

      Ver detalles de compilación

      1. Abre la página de Cloud Build en la Google Cloud consola.

        Abrir la página de Cloud Build

      2. Si es necesario, selecciona tu proyecto y haz clic en Abrir.

        Verás la página Historial de compilación:

        Captura de pantalla de la página historial de compilación

      3. Si es necesario, selecciona us-west2en el menú desplegable Región para ver las compilaciones de esa región.

        Aparecerán dos compilaciones en la lista, una para cada una de las compilaciones que ejecutaste en esta guía de inicio rápido.

      4. Haz clic en una de las compilaciones.

        Verás la página Detalles de compilación:

      5. Para ver los artefactos de la compilación, en Resumen de la compilación, haz clic en Artefactos de compilación.

        Verás un resultado similar al siguiente:

        Captura de pantalla de artefactos de compilación

        Puedes descargar tu registro de compilación y ver los detalles de la imagen en Artifact Registry desde esta página.

Limpia

Sigue estos pasos para evitar que se apliquen cargos a tu cuenta de Google Cloud por los recursos que usaste en esta página.

  1. Abre la página de Artifact Registry en la Google Cloud consola.

    Abrir la página de Artifact Registry

  2. Selecciona tu proyecto y haz clic en Open.

  3. Selecciona quickstart-docker-repo.

  4. Haz clic en Borrar.

Con estos pasos, borraste las imágenes que creaste como parte de esta guía de inicio rápido.

¿Qué sigue?