Bestimmten Builder verwenden

Builder sind versionierte Images, die alle zum Erstellen eines ausführbaren Containers erforderlichen Komponenten enthalten. Jeder Builder verwendet eine bestimmte Betriebssystem-Distribution als Basis-Image (z. B. Ubuntu 22) und unterstützt mehrere Programmiersprachen-Versionen.

Möglicherweise müssen Sie die Version des Builders anpassen, wenn Folgendes erforderlich ist:

  • Eine betriebssystemspezifische Abhängigkeit, die nur in einer bestimmten Builder-Version verfügbar ist.
  • Eine bestimmte Version einer Programmiersprache, die nur in einer bestimmten Builder-Version verfügbar ist.

Lokale Builds

Bei lokalen Builds müssen die Pack-Befehlszeile und Docker installiert sein.

Vorbereitung

  1. Installieren Sie die Docker Community Edition (CE) auf Ihrer Workstation. Docker wird von pack als OCI-Image-Builder verwendet.
  2. Installieren Sie die Pack-Befehlszeile.
  3. Installieren Sie das Tool Git Source Control, um die Beispielanwendung von GitHub herunterzuladen.

Builder-Version mit pack angeben

Sie können das --builder-Flag an den Pack-Befehl anhängen, um die Version des zu verwendeten Builders anzugeben:

pack build SERVICE_IMAGE_NAME --builder=BUILDER_IMAGE_URL

Ersetzen Sie:

  • BUILDER_IMAGE_URL durch die URL des Builders, z. B. gcr.io/buildpacks/builder:google-24
  • SERVICE_IMAGE_NAME durch den Namen, den Sie für Ihr Anwendungs-Image auswählen.

Weitere Informationen zum pack-Befehl finden Sie in der CLI-Dokumentation.

Builder-Version mit project.toml angeben

Sie können einen Buildpack-Projektdeskriptor (project.toml) verwenden, um den Builder beim Erstellen mit pack festzulegen.

  1. Erstellen Sie im Stammverzeichnis der Anwendung eine Datei mit dem Namen project.toml und der folgenden Konfiguration:
    [build]
    builder = "BUILDER_IMAGE_URL"
  2. Erstellen Sie Ihre Anwendung mit dem Befehl "pack":
    pack build SERVICE_IMAGE_NAME

Ersetzen Sie Folgendes:

  • BUILDER_IMAGE_URL: die URL des Builders, z. B. gcr.io/buildpacks/builder:google-24
  • SERVICE_IMAGE_NAME: der Name, den Sie für Ihr Anwendungs-Image auswählen.

Remote-Builds

Sie können in Cloud Build einen bestimmten Builder verwenden. Dazu hängen Sie beim Senden des Projekts das --pack-Flag an.

Hinweise

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  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 (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 and Artifact Registry 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. Install the 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 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 (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 and Artifact Registry 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. Install the 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 folgenden Befehl aus, um die gcloud CLI zu initialisieren:

    gcloud init
  14. Prüfen Sie, ob Ihr Google Cloud -Projekt Zugriff auf ein Container-Image-Repository hat.

    So konfigurieren Sie den Zugriff auf ein Docker-Repository in Artifact Registry:

    1. Erstellen Sie ein neues Docker-Repository am selben Speicherort wie Ihr Google Cloud -Projekt.
      gcloud artifacts repositories create REPO_NAME \
      --repository-format=docker \
      --location=REGION --description="DESCRIPTION"
      Ersetzen Sie:
      • REPO_NAME durch den Namen, den Sie für Ihr Docker-Repository wählen.
      • REGION durch einen Standort direkt im oder maximal nahe am Google Cloud -Projekt.
      • DESCRIPTION mit einer Beschreibung Ihrer Wahl.

      Beispiel: Um ein docker-Repository in us-west2 mit der Beschreibung "Docker repository" zu erstellen, führen Sie folgenden Befehl aus:

      gcloud artifacts repositories create buildpacks-docker-repo --repository-format=docker \
      --location=us-west2 --description="Docker repository"
    2. Prüfen Sie, ob das Repository erstellt wurde:
      gcloud artifacts repositories list

      Der Name, den Sie für Ihr Docker-Repository wählen, sollte in der Liste angezeigt werden.

  15. Anwendung mit einem bestimmten Builder erstellen

    1. Verwenden Sie gcloud, um den Anwendungsquellcode an Cloud Build zu senden:
      gcloud builds submit --pack builder=BUILDER_IMAGE_URL,image=LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/SERVICE_IMAGE_NAME

      Ersetzen Sie:

      • BUILDER_IMAGE_URL durch die URL des Builders, z. B. gcr.io/buildpacks/builder:google-24
      • LOCATION durch den Namen der Region Ihres Container-Repositorys. Beispiel: us-west2-docker.pkg.dev
      • PROJECT_ID durch die ID Ihres Google Cloud -Projekts.
      • REPO_NAME durch den Namen des Docker-Repositorys.
      • SERVICE_IMAGE_NAME durch den Namen Ihres erstellten Container-Images

      Weitere Informationen zum submit-Befehl finden Sie in der Cloud Build-Dokumentation.

    2. Prüfen Sie, ob die Beispielanwendung erfolgreich in REPO_NAME veröffentlicht wurde:
      gcloud artifacts docker images list LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME

      Ersetzen Sie:

      • LOCATION durch den Namen der Region Ihres Container-Repositorys. Beispiel: us-west2-docker.pkg.dev
      • PROJECT_ID durch die ID Ihres Google Cloud -Projekts.
      • REPO_NAME durch den Namen des Docker-Repositorys.

    Mit Cloud Run aus Quelle bereitstellen

    Sie können eine Buildpacks-Projektdeskriptordatei wie project.toml verwenden, um den Builder beim Bereitstellen aus der Quelle mit Cloud Run festzulegen.

    1. Initialisieren Sie eine project.toml-Datei im Stammverzeichnis Ihres Anwendungsverzeichnisses und fügen Sie die folgende Konfiguration in diese ein:
      [build]
      builder = "BUILDER_IMAGE_URL"
    2. Anwendung aus der Quelle bereitstellen
      gcloud run deploy --source . SERVICE_IMAGE_NAME

    Ersetzen Sie:

    • BUILDER_IMAGE_URL durch die URL des Builders, z. B. gcr.io/buildpacks/builder:google-24
    • SERVICE_IMAGE_NAME durch den Namen Ihres erstellten Container-Images