Inicia las compilaciones de forma manual

En esta página, se describe cómo iniciar una compilación en Cloud Build de forma manual con la herramienta de línea de comandos de gcloud y la API de Cloud Build.

Antes de comenzar

Ejecuta compilaciones

console

No puedes iniciar una nueva compilación de forma manual con Google Cloud Platform Console, aunque puedes intentar de nuevo una compilación anterior.

Para volver a compilar, haz lo siguiente:

  1. Abre la página del Historial de compilación en la sección Cloud Build de Google Cloud Platform Console.

    Abrir la página del Historial de compilación

  2. Selecciona tu proyecto y haz clic en Abrir.

  3. En la página del Historial de compilación, haz clic en la compilación que deseas volver a compilar.

  4. Haz clic en Volver a compilar.

gcloud

Usa un Dockerfile:

Tu Dockerfile contiene toda la información necesaria para compilar una imagen de Docker con Cloud Build.

Para ejecutar una solicitud de compilación con tu Dockerfile, ejecuta el siguiente comando desde el directorio que contiene el código de tu aplicación, Dockerfile y cualquier otro elemento:

gcloud builds submit --tag gcr.io/[PROJECT_ID]/[IMAGE_NAME] .

En el que:

  • [PROJECT_ID] es el nombre de tu proyecto de GCP.
  • [IMAGE_NAME] es la imagen que se compilará.
  • . especifica que el código fuente se encuentra en el directorio de trabajo actual.

El nombre completo de la imagen que se compilará es gcr.io/[PROJECT_ID]/[IMAGE_NAME]. Las imágenes enviadas a Container Registry usan el formato de nombre de registro.

El comando gcloud builds submit hace lo siguiente:

  • comprime el código de tu aplicación, Dockerfile y cualquier otro elemento en el directorio actual como lo indica .;
  • sube los archivos a un depósito de Cloud Storage;
  • inicia una compilación con los archivos subidos como entrada;
  • etiqueta la imagen con el nombre provisto; y
  • envía la imagen compilada a Container Registry.

A medida que la compilación avanza, su resultado se muestra en tu shell o ventana de terminal. Cuando se completa la compilación, debes ver un resultado similar al siguiente:

    DONE
    ---------------------------------------------------------------------------------
    ID                                    CREATE_TIME                DURATION STATUS
    $BUILD_ID                             2016-10-28T15:21:18+00:00  12S      SUCCESS

en el que $BUILD_ID es el identificador único de tu compilación.

Usa el archivo de configuración de compilación de Cloud Build:

Para enviar una compilación mediante la configuración de compilación, ejecuta el siguiente comando:

    gcloud builds submit --config [BUILD_CONFIG] [SOURCE_CODE]

En el que:

  • [BUILD_CONFIG] es la ruta de acceso al archivo de configuración de compilación
  • [SOURCE_CODE] es la ruta de acceso o URL del código fuente

Por ejemplo, el siguiente comando envía la solicitud de compilación cloudbuild.yaml con el código fuente archivado almacenado en un depósito de Cloud Storage.

    gcloud builds submit --config cloudbuild.yaml \
        gs://cloud-build-examples/node-docker-example.tar.gz

Puedes usar . para especificar que el código fuente se encuentra en el directorio de trabajo actual:

    gcloud builds submit --config cloudbuild.yaml .

gcloudignore: cuando se incluye el código fuente para la compilación, el comando anterior sube todos los archivos del directorio especificado a Google Cloud Platform con el fin de compilar. Si deseas excluir ciertos archivos del directorio, puedes incluir un archivo llamado .gcloudignore en el directorio de carga de nivel superior; los archivos especificados se ignorarán. Si no hay ningún archivo .gcloudignore presente en el directorio de carga de nivel superior, pero sí un archivo .gitignore, la herramienta de gcloud generará un archivo .gcloudignore compatible con Git que respeta tus archivos ignorados en .gitignore. Para obtener más información, consulta la documentación de gcloudignore.

Si no tienes un código fuente para pasar a tu compilación, usa la marca --no-source:

    gcloud builds submit --config [BUILD_CONFIG] --no-source

API

Para enviar la solicitud de compilación con curl, haz lo siguiente:

  1. Crea un archivo llamado request.json con el siguiente contenido:

    {
        "source": {
            "storageSource": {
                "bucket": "cloud-build-examples",
                "object": "node-docker-example.tar.gz"
            }
        },
        "steps": [{
            "name": "gcr.io/cloud-builders/docker",
            "args": [
                "build",
                "-t",
                "gcr.io/$PROJECT_ID/my-image",
                "."
            ]
        }],
        "images": [
            "gcr.io/$PROJECT_ID/my-image"
        ]
    }
    

    En esta solicitud de compilación, Cloud Build llama al paso de compilación docker con los argumentos build -t gcr.io/$PROJECT_ID/cb-demo-img ..

    El nombre completo de la imagen que se compilará es gcr.io/$PROJECT_ID/cb-demo-img. Las imágenes enviadas a Container Registry usan el formato de nombre de registro.

    El código fuente de la compilación se encuentra en un archivo comprimido tar, node-docker-example.tar.gz. El archivo se almacena en un depósito de Cloud Storage llamado cloud-build-examples.

  2. Ejecuta el siguiente comando:

    curl -X POST -T request.json -H "Authorization: Bearer $(gcloud config config-helper \
        --format='value(credential.access_token)')" \
        https://cloudbuild.googleapis.com/v1/projects/[PROJECT_ID]/builds
    

    donde [PROJECT-ID] es tu ID del proyecto de GCP.

    En este comando, curl envía request.json en una llamada POST al extremo builds para el método de API projects.builds.create.

    El comando muestra detalles sobre tu compilación en tu shell o ventana de terminal. La salida es una respuesta JSON con un aspecto similar al siguiente:

    {
        "name": "operations/build/$PROJECT-ID/NmZhZW...",
        "metadata": {
            "@type": "type.googleapis.com/google.devtools.cloudbuild.v1.BuildOperationMetadata",
            "build": {
                "id": $BUILD-ID,
                "status": "QUEUED",
                "source": {
                    "storageSource": {
                        "bucket": "cloud-build-examples",
                        "object": "node-docker-example.tar.gz"
                    }
                },
                "createTime": "2017-05-12T18:58:07.341526Z",
                "steps": [
                {
                    "name": "gcr.io/cloud-builders/docker",
                    "args": [
                        "build",
                        "-t",
                        "gcr.io/$PROJECT-ID/cb-demo-img",
                        "."
                    ]
                }
                ],
                "timeout": "600s",
                "images": [
                    "gcr.io/$PROJECT-ID/cb-demo-img"
                ],
                "projectId": $PROJECT-ID,
                "logsBucket": "gs://...",
                "sourceProvenance": {
                    "resolvedStorageSource": {
                        "bucket": "cloud-build-examples",
                        "object": "node-docker-example.tar.gz",
                        "generation": "..."
                    }
                },
                "logUrl": "https://console.cloud.google.com/gcr/builds/...?project=$PROJECT-ID"
            }
        }
    }
    

    La respuesta JSON se modela con el recurso Operation en la API de Cloud Build. El campo metadata se modela con el recurso Build. El estado QUEUED indica que la compilación se encuentra a la espera de la ejecución.

Pasos siguientes

¿Te ha resultado útil esta página? Enviar comentarios:

Enviar comentarios sobre...