Utilizzo di builder personalizzati e forniti dalla community

Questa pagina spiega come utilizzare i builder forniti dalla community e i builder personalizzati in Cloud Build. La community di sviluppatori di Cloud Build fornisce builder open source che puoi utilizzare per eseguire le tue attività. Se l'attività che vuoi eseguire richiede funzionalità non fornite da un'immagine esistente, puoi creare la tua immagine personalizzata e utilizzarla in un passaggio di build. Per scoprire di più sui diversi tipi di builder, consulta Cloud Builder.

Se non hai mai utilizzato Cloud Build, leggi prima le guide di avvio rapido e la panoramica della configurazione di compilazione.

Utilizzo di builder forniti dalla community

Le immagini predefinite non sono disponibili per i builder con contributo della community. Per utilizzare questi builder in un file di configurazione di Cloud Build, devi prima creare l'immagine ed eseguirne il push su Artifact Registry nel tuo progetto.

Per utilizzare un builder fornito dalla community:

  1. Crea ed esegui il push del builder:

    1. Vai alla directory principale del progetto.

    2. Clona il repository cloud-builders-community:

      git clone https://github.com/GoogleCloudPlatform/cloud-builders-community.git
      
    3. Vai all'immagine del builder che vuoi utilizzare, dove builder-name è la directory che contiene il builder:

      cd cloud-builders-community/builder-name
      
    4. Invia il builder al tuo progetto:

      gcloud builds submit .
      
    5. Torna alla directory principale del progetto:

      cd ../..
      
    6. Rimuovi il repository dalla directory radice:

      rm -rf cloud-builders-community/
      
  2. Nel file di configurazione Cloud Build, utilizza il builder in un passaggio di build:

    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. Utilizza il file di configurazione della build per avviare la build manualmente o la build utilizzando i trigger.

Per esempi sull'utilizzo dei builder offerti dalla community, consulta Deployment su Firebase e Creazione di immagini VM tramite Packer.

Creazione di un generatore personalizzato

Se l'attività che vuoi eseguire richiede funzionalità non fornite da un'immagine pubblica, un builder supportato o un builder fornito dalla community, puoi creare la tua immagine e utilizzarla in un passaggio di build.

Alcuni esempi di quando potresti voler utilizzare un'immagine di builder personalizzata sono:

  • Download del codice sorgente o dei pacchetti da posizioni esterne.
  • Utilizzo di una toolchain esterna.
  • Memorizzazione nella cache di tutte le librerie necessarie.
  • Pre-building dell'origine (con Cloud Build responsabile solo del potenziale pacchettizzazione della build in un'immagine).

Come qualsiasi altro builder, un builder personalizzato viene eseguito con l'origine montata in /workspace e con una directory di lavoro in /workspace. Tutti i file rimasti in /workspace in seguito a un determinato passaggio di build sono disponibili per altri passaggi di build.

Il builder personalizzato può eseguire il push o il pull da un repository in Artifact Registry (ospitato su gcr.io/$PROJECT-NAME/) a cui ha accesso il tuo service account di build.

I seguenti passaggi mostrano come creare e utilizzare un generatore personalizzato con un esempio Dockerfile:

  1. Crea un'immagine del builder personalizzata:

    1. Crea il Dockerfile per il builder personalizzato. Il seguente codice mostra un esempio di Dockerfile:

        FROM alpine
        RUN apk add curl
        CMD curl https://httpbin.org/ip -s > myip.txt; echo "*** My IP is: $(cat myip.txt)"
      
    2. Crea e invia il builder personalizzato ad Artifact Registry nel tuo progetto, sostituendo i valori di project-id e image-name:

        gcloud builds submit --tag gcr.io/project-id/image-name
      
  2. Utilizza l'immagine del builder personalizzato in Cloud Build specificando il builder nel campo name di un passaggio di build:

    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. Utilizza il file di configurazione della build per avviare la build manualmente o la build utilizzando i trigger.

Passaggi successivi