Diese Seite wurde von der Cloud Translation API übersetzt.
Switch to English

Go-Anwendungen erstellen

Auf dieser Seite wird erläutert, wie Sie mit Cloud Build eine Go-Binärdatei erstellen und sie per Push an Cloud Storage übertragen. Wenn Sie Cloud Build noch nicht kennen, lesen Sie zuerst die Kurzanleitungen sowie die Übersicht über die Build-Konfiguration.

Mit Cloud Build können Sie jedes öffentlich verfügbare Container-Image zur Ausführung Ihrer Aufgaben verwenden. Sie können das öffentliche golang-Image aus DockerHub in Ihrer Konfigurationsdatei verwenden, um Ihre Go-Anwendungen zu erstellen.

Hinweis

Die Anleitung auf dieser Seite setzt voraus, dass Sie mit Go vertraut sind. Außerdem gilt:

  • Sie benötigen den Quellcode der Go-Anwendung.
  • Sie benötigen einen Cloud Storage-Bucket, um per Push die erstellte Go-Binärdatei zu übertragen. Eine Anleitung zum Erstellen eines Buckets finden Sie unter Storage-Buckets erstellen.
  • Zum Ausführen der gcloud-Befehle auf dieser Seite müssen Sie das gcloud-Befehlszeilentool installieren.

Mit Go-Modulen erstellen

Go 1.11 bietet eine vorläufige Unterstützung für Module mit Versionsverwaltung. Das öffentliche golang-Image von Docker Hub unterstützt das Erstellen mithilfe von Go-Modulen. Wenn Sie dieses Image als Build-Schritt in Ihrer Cloud Build-Konfigurationsdatei verwenden, können Sie im Image go-Befehle aufrufen. Argumente, die an diesen Build-Schritt übergeben werden, werden direkt an das golang-Tool weitergegeben, sodass Sie in diesem Image alle go-Befehle ausführen können.

So erstellen Sie eine Go-Anwendung:

  1. [OPTIONAL, wenn Sie keine Go-Module verwenden] Go-Module initialisieren: Führen Sie im selben Verzeichnis, das den Quellcode der Anwendung enthält, den folgenden Befehl aus, um einen GOPATH anzugeben. Dies ermöglicht die Verwendung von Go-Modulen:

    go mod init [GOPATH]
    
  2. Erstellen Sie eine Cloud Build-Konfigurationsdatei namens cloudbuild.yaml oder cloudbuild.json.

  3. Modul erstellen: Fügen Sie in der Konfigurationsdatei einen Build-Schritt hinzu, um den Befehl go build aufzurufen:

    YAML

    # Build the module.
    steps:
    - name: golang
      args: ['go', 'build', '.']
    

    JSON

    {
       "steps": [
        {
           "name": "golang",
           "args": [
               "go",
               "build",
               "."
            ]
           }
      ]
    }
    
  4. Build-Artefakte speichern: Fügen Sie das Feld artifacts hinzu, um die Binärdatei in einem Cloud Storage-Bucket zu speichern.

    YAML

    # Build the module.
    steps:
    - name: golang
      args: ['go', 'build', '.']
    artifacts:
      objects:
        location: '[STORAGE_LOCATION]'
        paths: ['[ARTIFACT_PATH]']
    

    JSON

    {
       "steps": [
        {
           "name": "golang",
           "args": [
               "go",
               "build",
               "."
            ]
        }
      ]
      "artifacts": {
        "objects": {
            "location": [
                "[STORAGE_LOCATION]"
            ],
            "paths":
            [
                "[ARTIFACT_PATH]"
    
            ]
        }
      }
    }
    

    Dabei gilt:

    • [STORAGE_LOCATION] ist ein Cloud Storage-Bucket oder ein Ordner im Bucket, in dem Cloud Build das Artefakt speichern muss, z. B. gs://mybucket oder gs://mybucket/some/folder.
    • [ARTIFACT_PATH]: Pfad zu einem oder mehreren Artefakten.
  5. Starten Sie mit der Build-Konfigurationsdatei den Build:

    gcloud builds submit --config [CONFIG_FILE_PATH] [SOURCE_DIRECTORY]
    

    Dabei gilt:

    • [CONFIG_FILE_PATH] ist der Pfad zur Build-Konfigurationsdatei.
    • [SOURCE_DIRECTORY] ist der Pfad oder die URL zum Quellcode.

    Wenn Sie [CONFIG_FILE_PATH] und [SOURCE_DIRECTORY] im Befehl gcloud builds submit nicht angeben, geht Cloud Build davon aus, dass sich die Konfigurationsdatei und der Quellcode im aktuellen Arbeitsverzeichnis befinden.

Nächste Schritte