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 Builder-Version anpassen, wenn Sie Folgendes benötigen:
- 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
- Installieren Sie die Docker Community Edition (CE) auf Ihrer Workstation. Docker wird von
packals OCI-Image-Builder verwendet. - Installieren Sie die Pack-Befehlszeile.
- 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_URLdurch die URL des Builders, z. B. Beispiel:gcr.io/buildpacks/builder:google-24SERVICE_IMAGE_NAMEdurch 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.
- Erstellen Sie im Stammverzeichnis der Anwendung eine Datei mit dem Namen
project.tomlund der folgenden Konfiguration:[build] builder = "BUILDER_IMAGE_URL"
-
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-24SERVICE_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.
Vorbereitung
- Melden Sie sich in Ihrem Google Cloud Konto an. Wenn Sie noch kein Konto bei Google Cloudhaben, erstellen Sie ein Konto, um die Leistung 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.
-
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 theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
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 theserviceusage.services.enablepermission. Learn how to grant roles.-
Installieren Sie die Google Cloud CLI.
-
Wenn Sie einen externen Identitätsanbieter (IdP) verwenden, müssen Sie sich zuerst mit Ihrer föderierten Identität in der gcloud CLI anmelden.
-
Führen Sie den folgenden Befehl aus, um die gcloud CLI zu initialisieren:
gcloud init -
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 theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
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 theserviceusage.services.enablepermission. Learn how to grant roles.-
Installieren Sie die Google Cloud CLI.
-
Wenn Sie einen externen Identitätsanbieter (IdP) verwenden, müssen Sie sich zuerst mit Ihrer föderierten Identität in der gcloud CLI anmelden.
-
Führen Sie den folgenden Befehl aus, um die gcloud CLI zu initialisieren:
gcloud init - 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:
- Erstellen Sie ein neues Docker-Repository an dem Speicherort, an dem sich auch Ihr Google Cloud Projekt befindet.
Ersetzen Sie:gcloud artifacts repositories create REPO_NAME \ --repository-format=docker \ --location=REGION --description="DESCRIPTION"
REPO_NAMEdurch den Namen, den Sie für Ihr Docker-Repository wählen.REGIONdurch einen Standort direkt im oder maximal nahe am Google Cloud Projekt.DESCRIPTIONdurch eine Beschreibung Ihrer Wahl.
Beispiel: Um ein
docker-Repository inus-west2mit 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"
- 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.
- Erstellen Sie ein neues Docker-Repository an dem Speicherort, an dem sich auch Ihr Google Cloud Projekt befindet.
Anwendung mit einem bestimmten Builder erstellen
- 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_URLdurch die URL des Builders, z. B. Beispiel:gcr.io/buildpacks/builder:google-24LOCATIONdurch den Namen der Region Ihres Container-Repositorys. Beispiel:us-west2-docker.pkg.devPROJECT_IDdurch die ID Ihres Google Cloud Projekts.REPO_NAMEdurch den Namen des Docker-Repositorys.SERVICE_IMAGE_NAMEdurch den Namen Ihres erstellten Container-Images
Weitere Informationen zum
submit-Befehl finden Sie in der Cloud Build-Dokumentation. -
Prüfen Sie, ob die Beispielanwendung erfolgreich in
REPO_NAMEveröffentlicht wurde:gcloud artifacts docker images list LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME
Ersetzen Sie:
LOCATIONdurch den Namen der Region Ihres Container-Repositorys. Beispiel:us-west2-docker.pkg.devPROJECT_IDdurch die ID Ihres Google Cloud Projekts.REPO_NAMEdurch den Namen des Docker-Repositorys.
Mit Cloud Run aus Quelle bereitstellen
Sie können eine Buildpacks-Projektdeskriptor
datei wie project.toml verwenden, um den Builder beim Bereitstellen aus der Quelle mit Cloud Run festzulegen.
- 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"
-
Anwendung aus der Quelle bereitstellen
gcloud run deploy --source . SERVICE_IMAGE_NAME
Ersetzen Sie:
BUILDER_IMAGE_URLdurch die URL des Builders, z. B. Beispiel:gcr.io/buildpacks/builder:google-24SERVICE_IMAGE_NAMEdurch den Namen Ihres erstellten Container-Images