Docker-Image mit Cloud Build erstellen und per Push übertragen
Erfahren Sie mehr zu den ersten Schritten mit Cloud Build, indem Sie ein Docker-Image erstellen und das Image per Push an Artifact Registry übertragen. Artifact Registry bietet einen zentralen Speicherort für die Verwaltung von privaten Paketen und Docker-Container-Images.
Sie erstellen das Image mit einem Dockerfile, der Konfigurationsdatei von Docker, und generieren dann dasselbe Image mit der Build-Konfigurationsdatei von Cloud Build.
Klicken Sie auf Anleitung, um eine detaillierte Anleitung für diese Aufgabe direkt im Cloud Shell-Editor zu erhalten:
Hinweis
- Melden Sie sich in Ihrem Google Cloud -Konto an. Wenn Sie mit Google Cloudnoch nicht vertraut sind, erstellen Sie einfach 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.
-
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.
-
If you're using an existing project for this guide, verify that you have the permissions required to complete this guide. If you created a new project, then you already have the required permissions.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Cloud Build, Compute Engine and Artifact Registry APIs, if any are not already enabled.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.-
Install the Google Cloud CLI.
-
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
-
To initialize the gcloud CLI, run the following command:
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.
-
If you're using an existing project for this guide, verify that you have the permissions required to complete this guide. If you created a new project, then you already have the required permissions.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Cloud Build, Compute Engine and Artifact Registry APIs, if any are not already enabled.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.-
Install the Google Cloud CLI.
-
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
-
To initialize the gcloud CLI, run the following command:
gcloud init
Erforderliche Rollen
Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen für das Cloud Build-Dienstkonto zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Erstellen eines Docker-Images und zum Übertragen in Artifact Registry benötigen:
- Artifact Registry-Administrator (
roles/artifactregistry.admin) - Cloud Build-Bearbeiter (
roles/cloudbuild.builds.editor) - Log-Autor (
roles/logging.logWriter) - Storage-Bucket-Betrachter (
roles/storage.bucketViewer) - Storage Object User (
roles/storage.objectUser)
Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.
Sie können die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erhalten.
Quelldateien zum Erstellen vorbereiten
Zum Verpacken in ein Container-Image benötigen Sie Beispiel-Quellcode. In diesem Abschnitt erstellen Sie ein Shell-Skript und eine Dockerfile. Ein Dockerfile ist ein Textdokument, das Anweisungen für das Erstellen eines Images durch Docker enthält.
Öffnen Sie ein Terminalfenster.
Erstellen Sie ein neues Verzeichnis mit dem Namen
quickstart-dockerund rufen Sie dieses Verzeichnis auf:mkdir quickstart-docker cd quickstart-dockerErstellen Sie eine Datei mit dem Namen
quickstart.shund mit folgendem Inhalt:Erstellen Sie eine Datei mit dem Namen
Dockerfileund mit folgendem Inhalt:Führen Sie im Terminalfenster den folgenden Befehl aus, um
quickstart.shausführbar zu machen:chmod +x quickstart.sh
Docker-Repository in Artifact Registry erstellen
Verwenden Sie den Befehl
gcloud artifacts repositories create, um ein Docker-Repository mit dem Namenquickstart-docker-repoam Speicherortus-west2mit der Beschreibung „Docker repository“ zu erstellen:gcloud artifacts repositories create quickstart-docker-repo --repository-format=docker \ --location=us-west2 --description="Docker repository"Prüfen Sie, ob das Repository erstellt wurde:
gcloud artifacts repositories listDie Liste der angezeigten Repositories sollte
quickstart-docker-repoenthalten.In Artifact Registry wird eine Namenskonvention verwendet, um Repositories und Images zu identifizieren. Wenn Sie beispielsweise mit Docker-Images interagieren, die in Artifact Registry in der Region
us-west2gespeichert sind, verwenden Sieus-west2-docker.pkg.devals Registry-Hostname in Ihren Befehlen.
Image mit einem Dockerfile erstellen
Verwenden Sie den Befehl gcloud builds submit, um ein Docker-Image mit einem Dockerfile zu erstellen. Sie benötigen keine separate Cloud Build-Konfigurationsdatei.
Ermitteln Sie Ihre Projekt-ID Google Cloud mit dem folgenden Befehl:
gcloud config get-value projectFühren Sie den folgenden Befehl in dem Verzeichnis aus, das
quickstart.shundDockerfileenthält:gcloud builds submit --region=us-west2 --tag us-west2-docker.pkg.dev/PROJECT_ID/quickstart-docker-repo/quickstart-image:tag1Nach Abschluss des Builds sollte die Ausgabe in etwa so aussehen:
DONE ------------------------------------------------------------------------------------------------------------------------------------ ID CREATE_TIME DURATION SOURCE IMAGES STATUS 545cb89c-f7a4-4652-8f63-579ac974be2e 2020-11-05T18:16:04+00:00 16S gs://gcb-docs-project_cloudbuild/source/1604600163.528729-b70741b0f2d0449d8635aa22893258fe.tgz us-west2-docker.pkg.dev/gcb-docs-project/quickstart-docker-repo/quickstart-image:tag1 SUCCESS
Sie haben nun mithilfe von Dockerfile ein Docker-Image mit dem Namen quickstart-image erstellt und das Image per Push an Artifact Registry übertragen.
Image mit einer Build-Konfigurationsdatei erstellen
In diesem Abschnitt verwenden Sie eine Cloud Build-Konfigurationsdatei, um dasselbe Docker-Image zu erstellen, das in den vorherigen Schritten erstellt wurde. Die Build-Konfigurationsdatei weist Cloud Build an, Aufgaben basierend auf Ihren Spezifikationen auszuführen.
Erstellen Sie im selben Verzeichnis, das auch
quickstart.shundDockerfileenthält, eine Datei mit dem Namencloudbuild.yamlund dem folgenden Inhalt. Diese Datei ist Ihre Build-Konfigurationsdatei. Bei der Build-Erstellung ersetzt Cloud Build$PROJECT_IDautomatisch durch Ihre Projekt-ID.Starten Sie den Build mit dem folgenden Befehl:
gcloud builds submit --region=us-west2 --config cloudbuild.yamlNach Abschluss des Builds sollte die Ausgabe in etwa so aussehen:
DONE ------------------------------------------------------------------------------------------------------------------------------------ ID CREATE_TIME DURATION SOURCE IMAGES STATUS 046ddd31-3670-4771-9336-8919e7098b11 2020-11-05T18:24:02+00:00 15S gs://gcb-docs-project_cloudbuild/source/1604600641.576884-8153be22c94d438aa86c78abf11403eb.tgz us-west2-docker.pkg.dev/gcb-docs-project/quickstart-docker-repo/quickstart-image:tag1 SUCCESS
Sie haben mithilfe der Build-Konfigurationsdatei gerade quickstart-image erstellt und das Image per Push an Artifact Registry übertragen.
Build-Details ansehen
Öffnen Sie in der Google Cloud Console die Seite „Cloud Build“.
Wählen Sie bei Bedarf Ihr Projekt aus und klicken Sie auf Öffnen.
Sie sehen die Seite Build-Verlauf:
Wählen Sie bei Bedarf im Drop-down-Menü Region die Option
us-west2aus, um die Builds in dieser Region aufzurufen.Es werden zwei Builds aufgeführt, einer für jeden Build, den Sie in dieser Kurzanleitung ausgeführt haben.
Klicken Sie auf einen der Builds.
Es wird die Seite Build-Details angezeigt.
Klicken Sie unter Build-Zusammenfassung auf Build-Artefakte, um sich die Artefakte Ihres Builds anzeigen zu lassen.
Die Ausgabe sollte in etwa so aussehen:
Auf dieser Seite können Sie Ihr Build-Log herunterladen und die Image-Details in Artifact Registry aufrufen.
Bereinigen
Mit den folgenden Schritten vermeiden Sie, dass Ihrem Google Cloud -Konto die auf dieser Seite verwendeten Ressourcen in Rechnung gestellt werden:
Öffnen Sie in der Google Cloud Console die Seite „Artifact Registry“.
Wählen Sie Ihr Projekt aus und klicken Sie auf Öffnen.
Wählen Sie quickstart-docker-repo aus.
Klicken Sie auf Löschen.
Sie haben nun das Repository, das Sie im Rahmen dieser Kurzanleitung erstellt haben, gelöscht.
Nächste Schritte
- Mehr zum Ausführen von Docker-Images
- Weitere Informationen zum Erstellen einfacher Build-Konfigurationsdateien.
- Weitere Informationen zum Bereitstellen mit Cloud Build
- Weitere Informationen zum Erstellen von Node.js-Anwendungen
- Weitere Informationen zum Erstellen von Java-Anwendungen
- Go-Anwendungen erstellen