Containeranwendung mit Cloud Build in Cloud Run bereitstellen

Auf dieser Seite erfahren Sie, wie Sie mit Cloud Build eine containerisierte Anwendung in Cloud Run bereitstellen.


Klicken Sie auf Anleitung, um eine detaillierte Anleitung für diese Aufgabe direkt im Cloud Shell-Editor zu erhalten:

Anleitung


Hinweis

  1. Melden Sie sich in Ihrem Google Cloud -Konto an. Wenn Sie mit Google Cloudnoch nicht vertraut sind, erstellen Sie ein Konto, um die Leistungsfähigkeit unserer Produkte in der Praxis sehen und bewerten zu können. Neukunden erhalten außerdem ein Guthaben von 300 $, um Arbeitslasten auszuführen, zu testen und bereitzustellen.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. Enable the Cloud Build, Cloud Run, Artifact Registry, and Compute Engine APIs.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

  5. Installieren Sie die Google Cloud CLI.

  6. Wenn Sie einen externen Identitätsanbieter (IdP) verwenden, müssen Sie sich zuerst mit Ihrer föderierten Identität in der gcloud CLI anmelden.

  7. Führen Sie den folgenden Befehl aus, um die gcloud CLI zu initialisieren:

    gcloud init
  8. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  9. Verify that billing is enabled for your Google Cloud project.

  10. Enable the Cloud Build, Cloud Run, Artifact Registry, and Compute Engine APIs.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

  11. Installieren Sie die Google Cloud CLI.

  12. Wenn Sie einen externen Identitätsanbieter (IdP) verwenden, müssen Sie sich zuerst mit Ihrer föderierten Identität in der gcloud CLI anmelden.

  13. Führen Sie den folgenden Befehl aus, um die gcloud CLI zu initialisieren:

    gcloud init

Berechtigungen erteilen

Cloud Build benötigt mehrere Berechtigungen, bevor ein Image in Cloud Run bereitgestellt werden kann. So erteilen Sie diese Berechtigungen:

  1. Öffnen Sie ein Terminalfenster.

  2. Legen Sie Umgebungsvariablen zum Speichern Ihrer Projekt-ID und Projektnummer fest.

    PROJECT_ID=$(gcloud config list --format='value(core.project)')
    PROJECT_NUMBER=$(gcloud projects describe $PROJECT_ID --format='value(projectNumber)')
    
  3. Weisen Sie Ihrem Cloud Build-Dienstkonto die Rolle Cloud Run-Administrator zu.

    gcloud projects add-iam-policy-binding $PROJECT_ID \
        --member=serviceAccount:$(gcloud projects describe $PROJECT_ID \
        --format="value(projectNumber)")-compute@developer.gserviceaccount.com \
        --role=roles/run.admin \
    
  4. Weisen Sie Ihrem Cloud Build-Dienstkonto die Rolle Storage-Objekt-Nutzer zu.

    gcloud projects add-iam-policy-binding $PROJECT_ID \
        --member=serviceAccount:$(gcloud projects describe $PROJECT_ID \
        --format="value(projectNumber)")-compute@developer.gserviceaccount.com \
        --role=roles/storage.objectUser \
    
  5. Weisen Sie Ihrem Cloud Build-Dienstkonto die Rolle Dienstkontonutzer zu.

    gcloud projects add-iam-policy-binding $PROJECT_ID \
        --member=serviceAccount:$(gcloud projects describe $PROJECT_ID \
        --format="value(projectNumber)")-compute@developer.gserviceaccount.com \
        --role=roles/iam.serviceAccountUser
    

Vordefiniertes Image bereitstellen

Sie können Cloud Build so konfigurieren, dass ein vordefiniertes Image bereitgestellt wird, das in der Artifact Registry für Cloud Run gespeichert ist.

So stellen Sie ein vordefiniertes Image bereit:

  1. Öffnen Sie ein Terminalfenster, wenn nicht bereits geschehen.

  2. Erstellen Sie ein neues Verzeichnis mit dem Namen helloworld und rufen Sie dieses Verzeichnis auf:

    mkdir helloworld
    cd helloworld
    
  3. Erstellen Sie eine Datei mit dem Namen cloudbuild.yaml und folgendem Inhalt. Diese Datei ist die Cloud Build-Konfigurationsdatei. Sie enthält eine Anleitung für Cloud Build zur Bereitstellung des Images us-docker.pkg.dev/cloudrun/container/hello im Cloud Run-Dienst cloudrunservice.

    steps:
    - name: 'gcr.io/cloud-builders/gcloud'
      script: |
        gcloud run deploy cloudrunservice --image us-docker.pkg.dev/cloudrun/container/hello --region us-central1 --platform managed --allow-unauthenticated
  4. Führen Sie folgenden Befehl aus, um das Image bereitzustellen:

    gcloud builds submit --region=us-west2 --config cloudbuild.yaml
    

Nach Abschluss des Builds müssten Sie in etwa folgende Ausgabe sehen:

DONE
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

ID                                    CREATE_TIME                DURATION  SOURCE                                                                                            IMAGES  STATUS
784653b2-f00e-4c4b-9f5f-96a5f115bef4  2020-01-23T14:53:13+00:00  23S       gs://cloudrunqs-project_cloudbuild/source/1579791193.217726-ea20e1c787fb4784b19fb1273d032df2.tgz  -       SUCCESS

Sie haben jetzt das Image hello in Cloud Run bereitgestellt.

Bereitgestelltes Image ausführen

  1. Öffnen Sie die Seite „Cloud Run“ in der Google Cloud Console:

    Zur Seite "Cloud Run"

  2. Wählen Sie Ihr Projekt aus und klicken Sie auf Öffnen.

    Die Seite Cloud Run-Dienste wird angezeigt.

  3. Suchen Sie in der Tabelle nach der Zeile mit dem Namen cloudrunservice und klicken Sie auf cloudrunservice.

    Die Seite Dienstdetails für cloudrunservice wird angezeigt.

  4. Klicken Sie auf die URL, um das in cloudrunservice bereitgestellte Image auszuführen:

    Grafik: Screenshot der Detailseite des Cloud Run-Dienstes

Nächste Schritte