Sie können Umgebungsvariablen konfigurieren, die während der Erstellung des Container-Images festgelegt werden.
Sie können das Container-Image anpassen. Dazu erweitern Sie die Build- und Ausführungs-Images.
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
pack
als OCI-Image-Builder verwendet. - Installieren Sie die Pack-Befehlszeile.
- Installieren Sie das Tool Git Source Control, um die Beispielanwendung von GitHub herunterzuladen.
Umgebungsvariablen festlegen
Zum Festlegen von Umgebungsvariablen für lokale Builds hängen Sie für jede Umgebungsvariable das --env
-Flag an den pack
-Befehl an.
Sie können eine oder mehrere der von Ihrer Laufzeit unterstützten Umgebungsvariablen verwenden.
pack build SERVICE_NAME \
--env ENVIRONMENT_VARIABLE
Ersetzen Sie:
SERVICE_NAME
durch den Namen des Dienstes für Ihre Anwendung oder Funktion.ENVIRONMENT_VARIABLE
durch die Umgebungsvariable, die Sie während der Erstellung festlegen möchten.
- Beispiel
Führen Sie folgenden Befehl aus, um die Umgebungsvariable
GOOGLE_ENTRYPOINT="gunicorn -p :8080 main:app"
im Container-Image festzulegen:pack build my-app \ --builder gcr.io/buildpacks/builder:v1 \ --env GOOGLE_ENTRYPOINT="gunicorn -p :8080 main:app" --env MY-LOCAL-ENV-VARIABLE
Remote-Builds
Verwenden Sie den project.toml
-Projektdeskriptor, um Umgebungsvariablen für Remote-Builds festzulegen.
Der project.toml
-Projektdeskriptor wird von Cloud Build verwendet, wenn das Container-Image erstellt wird.
Hinweise
- 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.
-
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 theresourcemanager.projects.create
permission. 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.enable
permission. Learn how to grant roles. -
Install the 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 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
(
roles/resourcemanager.projectCreator
), which contains theresourcemanager.projects.create
permission. 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.enable
permission. Learn how to grant roles. -
Install the 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 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 am selben Speicherort wie Ihr Google Cloud -Projekt.
Ersetzen Sie:gcloud artifacts repositories create REPO_NAME \ --repository-format=docker \ --location=REGION --description="DESCRIPTION"
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 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 am selben Speicherort wie Ihr Google Cloud -Projekt.
- Klonen Sie das Beispiel-Repository auf Ihren lokalen Computer:
git clone https://github.com/GoogleCloudPlatform/buildpack-samples.git
- Wechseln Sie in das Verzeichnis, das den Anwendungs-Beispielcode enthält:
Go
cd buildpack-samples/sample-go
Java
cd buildpack-samples/sample-java-gradle
Node.js
cd buildpack-samples/sample-node
PHP
cd buildpack-samples/sample-php
Python
cd buildpack-samples/sample-python
Ruby
cd buildpack-samples/sample-ruby
.NET
cd buildpack-samples/sample-dotnet
- Erstellen oder aktualisieren Sie im Stammverzeichnis Ihres Dienstes den
project.toml
-Projektdeskriptor, um den[[build.env]]
-Abschnitt und eine beliebige der unterstützten Umgebungsvariablen einzuschließen:[[build.env]] name = "ENVIRONMENT_VARIABLE_NAME" value = "ENVIRONMENT_VARIABLE_VALUE"
Ersetzen Sie:
ENVIRONMENT_VARIABLE_NAME
durch den Namen einer unterstützten Umgebungsvariablen.ENVIRONMENT_VARIABLE_VALUE
durch den entsprechenden Wert für die angegebene Umgebungsvariable.
Beispiel
[[build.env]] name = "GOOGLE_ENTRYPOINT" value = "gunicorn -p :8080 main:app"
- Verwenden Sie
gcloud
, um den Anwendungsquellcode an Cloud Build zu senden:gcloud builds submit --pack image=LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/IMAGE_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.IMAGE_NAME
durch den Namen Ihres Container-Images
Beispiele: Wenn Sie eine Beispielanwendung heruntergeladen haben, führen Sie den entsprechenden Befehl aus:
Go
gcloud builds submit --pack image=LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/sample-go
Java
gcloud builds submit --pack image=LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/sample-java-gradle
Node.js
gcloud builds submit --pack image=LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/sample-node
PHP
gcloud builds submit --pack image=LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/sample-php
Python
gcloud builds submit --pack image=LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/sample-python
Ruby
gcloud builds submit --pack image=LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/sample-ruby
.NET
gcloud builds submit --pack image=LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/sample-dotnet
-
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.