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 der 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-22
  • 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:

  • BUILDER_IMAGE_URL durch die URL des Builders, z. B. gcr.io/buildpacks/builder:google-22
  • SERVICE_IMAGE_NAME durch den Namen, 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.

Vorbereitung

  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.

    Go to project selector

  3. Die Abrechnung für das Google Cloud-Projekt muss aktiviert sein.

  4. Enable the Cloud Build and Artifact Registry APIs.

    Enable the APIs

  5. Install the Google Cloud CLI.
  6. To initialize the gcloud CLI, run the following command:

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

    Go to project selector

  8. Die Abrechnung für das Google Cloud-Projekt muss aktiviert sein.

  9. Enable the Cloud Build and Artifact Registry APIs.

    Enable the APIs

  10. Install the Google Cloud CLI.
  11. To initialize the gcloud CLI, run the following command:

    gcloud init
  12. Ihr Google Cloud-Projekt muss Zugriff auf ein Container-Image-Repository haben.

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

    1. Erstellen Sie ein neues Docker-Repository an dem Speicherort, an dem sich auch Ihr Google Cloud-Projekt befindet.
      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 durch eine 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.

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-22
    • LOCATION durch den Namen der Region Ihres Container-Repositorys. Beispiel: us-west2-docker.pkg.dev
    • Ersetzen Sie 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
    • Ersetzen Sie 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-22
  • SERVICE_IMAGE_NAME durch den Namen Ihres erstellten Container-Images