Usa compiladores personalizados y de la comunidad

En esta página, se explica cómo usar los compiladores aportados por la comunidad y los compiladores personalizados en Cloud Build. La comunidad de desarrolladores de Cloud Build proporciona compiladores de código abierto que puedes usar para ejecutar tus tareas. Si la tarea que quieres realizar requiere capacidades que una imagen existente no proporciona, puedes compilar tu propia imagen personalizada y usarla en un paso de compilación. Para obtener más información sobre los diferentes tipos de compiladores, consulta compiladores de Cloud.

Si estás dando los primeros pasos en Cloud Build, lee primero las guías de inicio rápido y la descripción general de la configuración de compilación.

Uso de compiladores que son Contribuciones de la comunidad

Las imágenes compiladas con anterioridad no están disponibles para los compiladores que son Contribuciones de la comunidad. Si deseas usar estos compiladores en un archivo de configuración de Cloud Build, primero debes compilar la imagen y enviarla a Container Registry en tu proyecto.

Para usar un compilador aportado por la comunidad, haz lo siguiente:

  1. Compila y envía el compilador:

    1. Navega al directorio raíz de tu proyecto.

    2. Clona el repositorio cloud-builders-community:

      git clone https://github.com/GoogleCloudPlatform/cloud-builders-community.git
      
    3. Navega hasta la imagen del compilador que deseas usar, en la que builder-name es el directorio que contiene el compilador:

      cd cloud-builders-community/builder-name
      
    4. Envía el compilador a tu proyecto:

      gcloud builds submit .
      
    5. Regresa al directorio raíz de su proyecto:

      cd ../..
      
    6. Quita el repositorio de tu directorio raíz:

      rm -rf cloud-builders-community/
      
  2. En tu archivo de configuración de Cloud Build, usa el compilador en un paso de compilación:

    YAML

    steps:
    - name: 'gcr.io/project-id/builder-name'
      args: ['arg1', 'arg2', ...]
    ...
    

    JSON

    {
      "steps": [
      {
        "name": "gcr.io/project-id/builder-name",
        "args": [
          "arg1",
          "arg2",
          ...
        ]
        ...
      }
      ]
    }
    
  3. Usa el archivo de configuración de compilación para iniciar la compilación de forma manual o la compilación con activadores.

Para ver ejemplos sobre el uso de compiladores que aporta la comunidad, consulta Implementa en Firebase y Compila imágenes de VM con Packer.

Crea un compilador personalizado

Si la tarea que deseas realizar requiere capacidades que no son proporcionadas por una imagen pública, un compilador compatible o aportado por la comunidad, puedes compilar tu propia imagen y usarla en un paso de compilación.

Estos son algunos ejemplos de situaciones en los que es posible que desees usar una imagen personalizada de compilador:

  • Descargar código fuente o paquetes de ubicaciones externas
  • Usar una cadena de herramientas externa
  • Almacenar en caché cualquier biblioteca necesaria
  • Compilar una fuente previamente (con Cloud Build responsable solo si se debe empaquetar la compilación en una imagen).

Al igual que cualquier otro compilador, un compilador personalizado se ejecuta con la fuente activada en /workspace y con un directorio de trabajo en /workspace. Los archivos que quedan en /workspace en un paso de compilación determinado están disponibles para otros pasos de compilación.

El compilador personalizado puede enviar o extraer desde un repositorio en Container Registry (alojado en gcr.io/$PROJECT-NAME/) al que tu cuenta de servicio de Cloud Build tiene acceso.

En los siguientes pasos, se muestra cómo crear y usar un compilador personalizado con un Dockerfile de ejemplo:

  1. Crea una imagen del compilador personalizado:

    1. Crea el Dockerfile para el compilador personalizado. En el siguiente código, se muestra un Dockerfile de ejemplo:

        FROM alpine
        RUN apk add curl
        CMD curl https://httpbin.org/ip -s > myip.txt; echo "*** My IP is: $(cat myip.txt)"
      
    2. Compila y envía el compilador personalizado a Container Registry en tu proyecto; para ello, reemplaza los valores de project-id y image-name:

        gcloud builds submit --tag gcr.io/project-id/image-name
      
  2. Para usar la imagen del compilador personalizado en Cloud Build, especifica el compilador en el campo name de un paso de compilación:

    YAML

        steps:
        - name: 'gcr.io/project-id/image-name'
          id: Determine IP of this build worker
    

    JSON

        {
          "steps": [
          {
            "name": "gcr.io/project-id/image-name",
            "id": "Determine IP of this build worker"
          }
          ]
        }
    
  3. Usa el archivo de configuración de compilación para iniciar la compilación de forma manual o la compilación con activadores.

¿Qué sigue?