Compila y depura de manera local

En esta página, se explica cómo usar Cloud Build en tu máquina local. Con el compilador local, puedes hacer lo siguiente:

  • Iterar compilaciones con mayor rapidez en tu máquina local
  • Usar una ejecución de prueba para verificar tu archivo de configuración

Antes de comenzar

  1. Instala y luego inicializa el SDK de Google Cloud.

  2. Instala Docker. Se recomienda usar la misma versión de Docker y Cloud Build.

  3. Necesitas código fuente para compilar, un archivo de configuración de compilación y acceso desde tu máquina local a cualquier herramienta o dependencia necesarias para tus etapas de compilación.

  4. Si tu compilación necesita acceso a un registro privado, instala y configura el Auxiliar de credenciales de Docker para Cloud Build con la ejecución de los siguientes comandos:

    gcloud components install docker-credential-gcr
    
    docker-credential-gcr configure-docker
    

Instala el compilador local

El compilador local es un componente de la herramienta de gcloud del SDK de Google Cloud. Según tu sistema, puedes instalarlo con el comando de gcloud, apt-get, o yum.

Para instalar el compilador local, ejecuta el siguiente comando:

gcloud

gcloud components install cloud-build-local

apt-get

sudo apt-get install google-cloud-sdk-cloud-build-local

yum

sudo yum install google-cloud-sdk-cloud-build-local

Una vez que se instaló el compilador local, haz lo siguiente:

  • Para ver la ayuda de la línea de comandos, ejecuta el siguiente comando:

    cloud-build-local --help
    
  • Para ver la versión instalada de tu compilador local, ejecuta el siguiente comando:

    cloud-build-local --version
    

Compila de forma local

Advertencia: Ejecuta una compilación a la vez en tu máquina local. Ejecutar múltiples compilaciones de forma paralela hará que el compilador local falle.

Si todavía no tienes establecido un proyecto, puedes probar el compilador local con la configuración de la guía de inicio rápido.

Para compilar de forma local, ejecuta el siguiente comando:

cloud-build-local --config=[BUILD_CONFIG] --dryrun=false --push [SOURCE_CODE]

En el que:

  • [BUILD_CONFIG] es la ruta y el nombre de tu archivo de configuración.
    • Por ejemplo, si tu archivo de configuración se encuentra en el directorio de trabajo y se llama cloudbuild.json, usa la marca --config=cloudbuild.json.
    • El valor predeterminado es cloudbuild.yaml, por lo que si tu archivo de configuración se encuentra en el directorio de trabajo y se llama cloudbuild.yaml, no es necesario que agregues esta marca.
  • [SOURCE_CODE] es la ruta de tu código fuente.
    • Como con Cloud Build, puedes usar . como fuente si el código fuente se encuentra en tu directorio de trabajo actual.
    • Si tu compilación no necesita código fuente, usa la marca --no-source en lugar de [SOURCE_CODE].
  • --dryrun=false permite que tu compilación se ejecute. De forma predeterminada, la marca --dryrun es verdadera. La ejecución con los valores predeterminados verifica tu archivo de configuración, pero no ejecuta los comandos de compilación. No necesitas establecer de forma explícita --dryrun=false para ejecutar tu compilación.
  • --push enviará las imágenes resultantes al repositorio definido en el campo images del archivo de configuración. De manera predeterminada, las imágenes se compilan, pero no se envían al registro.

Una vez que tu compilación se completó, las imágenes creadas estarán disponibles en tu máquina local a través de Docker. Si agregaste --push al comando de compilación, estarán en el repositorio especificado.

Conserva artefactos intermediarios

Durante una compilación, se colocan artefactos intermediarios en un directorio llamado workspace. De forma predeterminada, el compilador borra el espacio de trabajo y sus contenidos al final de una compilación.

Para ejecutar una compilación y conservar los artefactos del espacio de trabajo, ejecuta el siguiente comando:

cloud-build-local --config=[BUILD_CONFIG] --dryrun=false --write-workspace=[LOCAL_DIRECTORY_PATH] [SOURCE_CODE]

En el que:

  • [BUILD_CONFIG] es la ruta de tu archivo de configuración.
  • [SOURCE_CODE] es la ruta a tu código fuente.
  • [LOCAL_DIRECTORY_PATH] es el directorio local en el que quieres almacenar tu espacio de trabajo en tu máquina local.

La conservación del espacio de trabajo te permite hacer lo siguiente:

  • Analizar los artefactos intermediarios cuando depuras una compilación
  • Acceder a un resultado de compilación, como un objeto binario, que el compilador creó en el espacio de trabajo

Usa sustituciones en tu compilación

Para usar sustituciones en tu compilación, usa la marca --substitutions con el par key=value que quieres sustituir. Ten en cuenta que puedes especificar valores para ciertas variables predeterminadas así como otras variables que ya definiste.

Por ejemplo:

cloud-build-local --config=[BUILD_CONFIG] --dryrun=false --substitutions _KEY=value,_FOO=foo [SOURCE_CODE]

En el que:

  • [BUILD_CONFIG] es la ruta de tu archivo de configuración.
  • [SOURCE_CODE] es la ruta a tu código fuente.
  • En este ejemplo, _KEY se sustituirá con value y _FOO con foo.

Para obtener más detalles sobre sustituciones, incluida la sintaxis requerida, consulta Sustituciones.

Depura tu compilación de forma local

Para depurar tu compilación, puedes hacer lo siguiente:

Las compilaciones locales se ejecutan con los permisos disponibles al momento de la ejecución en tu host local. En Cloud Build, la etapa de compilación se ejecuta con los permisos de la cuenta de servicio de tu proyecto. Si depuras un problema de permisos, asegúrate de que tus permisos coincidan con los de la cuenta de servicio de Cloud Build a fin de que las compilaciones locales se encuentren en un entorno lo más cercano posible al de Cloud Build.

Verifica la compilación con una ejecución de prueba

Si realizas una ejecución de prueba de la compilación se verificará el archivo de configuración y se producirán errores si detecta problemas. Con la prueba de ejecución no se ejecuta la compilación, por lo que puedes verificar el archivo de configuración sin la sobrecarga de ejecutar la compilación. El uso del compilador local es la única forma de realizar una ejecución de prueba de una compilación.

  1. Realiza una ejecución de prueba de la compilación con el siguiente comando:

    cloud-build-local --config=[BUILD_CONFIG] [SOURCE_CODE]
    

    En el que:

    • [BUILD_CONFIG] es la ruta de tu archivo de configuración.
    • [SOURCE_CODE] es la ruta de tu código fuente.
  2. Revisa los mensajes de error y arregla cualquier problema en tu archivo de configuración.

Restricciones y limitaciones

  • El compilador local puede compilar solo en Linux o macOS.
  • El compilador local ejecuta una compilación a la vez en un host determinado. Si ejecutas múltiples compilaciones de forma paralela, el compilador local fallará.

Diferencias entre el compilador local y Cloud Build

El compilador local está diseñado para imitar a Cloud Build. Una compilación que se ejecuta con éxito en el compilador local debería ejecutarse de la misma forma en Cloud Build.

Las siguientes son algunas de las diferencias que existen entre los dos compiladores:

  • El compilador local se ejecuta en tu máquina local mientras que Cloud Build se ejecuta en Google Cloud Platform.
  • Para ejecutar la compilación, el compilador local usa tu cuenta personal mientras que Cloud Build usa la cuenta de servicio de cloudbuild [PROJECT_ID]@cloudbuild.gserviceaccount.com. Si estableces permisos en tu cuenta personal para el compilador local, puede que tengas que repetir estos permisos en la cuenta de servicio de cloudbuild. A fin de obtener detalles, consulta Establece permisos para la cuenta de servicio.
  • La versión de Docker que usan los compiladores puede ser diferente. Durante la ejecución, el compilador local imprime una advertencia cuando la versión instalada de Docker es diferente a la usada en Cloud Build. Se recomienda usar la misma versión de Docker y Cloud Build.

Pasos siguientes

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

Enviar comentarios sobre...