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 Sie Folgendes benötigen:
- Eine betriebssystemspezifische Abhängigkeit, die nur in einer bestimmten Builder-Version verfügbar ist.
- Eine bestimmte 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.
Hinweis
- Installieren Sie die Docker Community Edition (CE) auf Ihrer Workstation. Docker wird von
pack
als 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_URL
durch die URL des Builders. Beispiel: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.
- Erstellen Sie im Stammverzeichnis der Anwendung eine Datei mit dem Namen
project.toml
und der folgenden Konfiguration:[build] builder = "BUILDER_IMAGE_URL"
-
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.
Hinweis
- Melden Sie sich bei Ihrem Google Cloud-Konto an. Wenn Sie mit Google Cloud noch 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.
-
Wählen Sie in der Google Cloud Console auf der Seite der Projektauswahl ein Google Cloud-Projekt aus oder erstellen Sie eines.
-
Die Abrechnung für das Google Cloud-Projekt muss aktiviert sein.
-
Cloud Build and Artifact Registry APIs aktivieren.
- Installieren Sie die Google Cloud CLI.
-
Führen Sie folgenden Befehl aus, um die gcloud CLI zu initialisieren:
gcloud init
-
Wählen Sie in der Google Cloud Console auf der Seite der Projektauswahl ein Google Cloud-Projekt aus oder erstellen Sie eines.
-
Die Abrechnung für das Google Cloud-Projekt muss aktiviert sein.
-
Cloud Build and Artifact Registry APIs aktivieren.
- Installieren Sie die Google Cloud CLI.
-
Führen Sie folgenden Befehl aus, um die gcloud CLI zu initialisieren:
gcloud init
- Sorgen Sie dafür, dass 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.
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 inus-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"
- 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 Quellcode der Anwendung 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. Beispiel: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. -
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.
- 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_URL
durch die URL des Builders. Beispiel:gcr.io/buildpacks/builder:google-22
SERVICE_IMAGE_NAME
durch den Namen Ihres erstellten Container-Images