Von der Community bereitgestellte und benutzerdefinierte Builder verwenden

Auf dieser Seite wird erläutert, wie Sie in Cloud Build Community-Community-Builder und benutzerdefinierte Builder verwenden. Die Cloud Build-Entwickler-Community bietet Open Source Builder mit denen Sie Ihre Aufgaben ausführen können. Wenn die Aufgabe, die Sie ausführen möchten, Funktionen erfordert, die nicht von einem vorhandenen Image bereitgestellt werden, können Sie ein eigenes benutzerdefiniertes Image erstellen und in einem Build-Schritt verwenden. Weitere Informationen zu den verschiedenen Builder-Typen finden Sie unter Cloud Builder.

Wenn Sie Cloud Build noch nicht kennen, lesen Sie zuerst die Kurzanleitungen sowie Build-Konfiguration – Überblick.

Mit von der Community bereitgestellten Buildern

Vordefinierte Images sind für von der Community bereitgestellte Builder nicht verfügbar. Wenn Sie diese Builder in einer Cloud Build-Konfigurationsdatei verwenden möchten, müssen Sie zuerst das Image erstellen und in Container Registry in Ihrem Projekt hochladen.

So verwenden Sie einen von der Community bereitgestellten Builder:

  1. Erstellen und übertragen Sie den Builder:

    1. Wechseln Sie zum Stammverzeichnis Ihres Projekts.

    2. Klonen Sie das Repository cloud-builders-community:

      git clone https://github.com/GoogleCloudPlatform/cloud-builders-community.git
      
    3. Gehen Sie zu dem Builder-Image, das Sie verwenden möchten, wobei builder-name das Verzeichnis ist, das den Builder enthält:

      cd cloud-builders-community/builder-name
      
    4. Übertragen Sie den Builder in Ihr Projekt:

      gcloud builds submit .
      
    5. Wechseln Sie zurück zum Stammverzeichnis Ihres Projekts:

      cd ../..
      
    6. Entfernen Sie das Repository aus Ihrem Stammverzeichnis:

      rm -rf cloud-builders-community/
      
  2. Verwenden Sie den Builder in der Cloud Build-Konfigurationsdatei in einem Build-Schritt:

    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. Verwenden Sie die Build-Konfigurationsdatei, um den Build manuell oder Builds mit Triggern zu starten.

Beispiele für die Verwendung von Community-Buildern finden Sie unter In Firebase bereitstellen und VM-Images mit Packer erstellen.

Benutzerdefinierten Builder erstellen

Wenn die auszuführende Aufgabe Funktionen erfordert, die nicht von ein öffentliches Image, einen unterstützten oder von der Community beigetragenen Builder, können Sie ein eigenes Image erstellen und in einem Build-Schritt verwenden.

Hier einige Beispiele, wann Sie ein benutzerdefiniertes Builder-Image verwenden können:

  • Herunterladen von Quellcode oder Paketen von externen Speicherorten
  • Verwenden einer externen Toolchain
  • Caching aller notwendigen Bibliotheken
  • Vorbereiten einer Quelle, wobei die einzige Aufgabe von Cloud Build darin besteht, den Build potenziell in ein Image zu verpacken.

Wie jeder andere Builder wird ein benutzerdefinierter Builder mit der unter /workspace bereitgestellten Quelle ausgeführt und mit einem Arbeitsverzeichnis in /workspace ausgeführt. Alle Dateien, die in einem bestimmten Build-Schritt in /workspace verbleiben, sind für andere Build-Schritte verfügbar.

Mit einem benutzerdefinierten Builder können Sie Push- oder Pull-Übertragungen zum bzw. vom Repository in der Container Registry durchführen, die unter gcr.io/$PROJECT-NAME/ gehostet wird, auf das Ihr Build-Dienstkonto Zugriff hat.

In den folgenden Schritten wird anhand eines Dockerfile-Beispiels gezeigt, wie Sie einen benutzerdefinierten Builder erstellen und verwenden:

  1. Erstellen Sie ein benutzerdefiniertes Builder-Image:

    1. Erstellen Sie Dockerfile für den benutzerdefinierten Builder. Der folgende Code zeigt ein Dockerfile-Beispiel:

        FROM alpine
        RUN apk add curl
        CMD curl https://httpbin.org/ip -s > myip.txt; echo "*** My IP is: $(cat myip.txt)"
      
    2. Erstellen Sie den benutzerdefinierten Builder und übertragen Sie ihn in die Container Registry in Ihrem Projekt. Ersetzen Sie dabei die Werte für project-id und image-name:

        gcloud builds submit --tag gcr.io/project-id/image-name
      
  2. Verwenden Sie das benutzerdefinierte Builder-Image in Cloud Build. Geben Sie dazu den Builder im Feld name eines Build-Schritts an:

    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. Verwenden Sie die Build-Konfigurationsdatei, um den Build manuell oder Builds mit Triggern zu starten.

Nächste Schritte