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.


Eine detaillierte Anleitung zu dieser Aufgabe finden Sie direkt im Cloud Shell-Editor. Klicken Sie dazu einfach auf Anleitung:

Anleitung


Die folgenden Abschnitte führen Sie durch dieselben Schritte wie das Klicken auf Anleitung.

Hinweis

  1. 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.
  2. Wählen Sie in der Google Cloud Console auf der Seite der Projektauswahl ein Google Cloud-Projekt aus oder erstellen Sie eines.

    Zur Projektauswahl

  3. Die Abrechnung für das Cloud-Projekt muss aktiviert sein. So prüfen Sie, ob die Abrechnung für ein Projekt aktiviert ist.

  4. Cloud Build and Artifact Registry APIs aktivieren.

    Aktivieren Sie die APIs

  5. Installieren und initialisieren Sie Google Cloud CLI.
  6. Wählen Sie in der Google Cloud Console auf der Seite der Projektauswahl ein Google Cloud-Projekt aus oder erstellen Sie eines.

    Zur Projektauswahl

  7. Die Abrechnung für das Cloud-Projekt muss aktiviert sein. So prüfen Sie, ob die Abrechnung für ein Projekt aktiviert ist.

  8. Cloud Build and Artifact Registry APIs aktivieren.

    Aktivieren Sie die APIs

  9. Installieren und initialisieren Sie Google Cloud CLI.

Quelldateien zum Erstellen vorbereiten

Zum Verpacken in ein Container-Image benötigen Sie Beispiel-Quellcode. In diesem Abschnitt erstellen Sie ein einfaches Shell-Skript und ein Dockerfile. Ein Dockerfile ist ein Textdokument, das Anweisungen für das Erstellen eines Images durch Docker enthält.

  1. Öffnen Sie ein Terminalfenster.

  2. Erstellen Sie ein neues Verzeichnis mit dem Namen quickstart-docker und rufen Sie dieses Verzeichnis auf:

    mkdir quickstart-docker
    cd quickstart-docker
    
  3. Erstellen Sie eine Datei mit dem Namen quickstart.sh und folgendem Inhalt:

    echo "Hello, world! The time is $(date)."
  4. Erstellen Sie eine Datei mit dem Namen Dockerfile und folgendem Inhalt:

    FROM alpine
    COPY quickstart.sh /
    CMD ["/quickstart.sh"]
  5. Führen Sie im Terminalfenster den folgenden Befehl aus, um quickstart.sh ausführbar zu machen:

    chmod +x quickstart.sh
    

Docker-Repository in Artifact Registry erstellen

  1. Erstellen Sie ein neues Docker-Repository mit dem Namen quickstart-docker-repo am Standort us-west2 mit der Beschreibung „Docker repository“:

    gcloud artifacts repositories create quickstart-docker-repo --repository-format=docker \
        --location=us-west2 --description="Docker repository"
    
  2. Prüfen Sie, ob Ihr Repository erstellt wurde:

    gcloud artifacts repositories list
    

    In der Liste der angezeigten Repositories wird quickstart-docker-repo angezeigt.

Image mit Dockerfile erstellen

Mit Cloud Build können Sie ein Docker-Image mithilfe eines Dockerfile erstellen. Sie benötigen keine separate Cloud Build-Konfigurationsdatei.

Zum Erstellen mit einem Dockerfile gehen Sie so vor:

  1. Rufen Sie Ihre Cloud-Projekt-ID ab. Führen Sie dazu den folgenden Befehl aus:

    gcloud config get-value project
    
  2. Führen Sie den folgenden Befehl in dem Verzeichnis aus, das quickstart.sh und Dockerfile enthält:

    gcloud builds submit --region=us-west2 --tag us-west2-docker.pkg.dev/project-id/quickstart-docker-repo/quickstart-image:tag1
    

Nach Abschluss des Builds sollten Sie in etwa folgende Ausgabe sehen:

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 gerade 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 wie oben zu erstellen. Die Build-Konfigurationsdatei weist Cloud Build an, Aufgaben nach Ihren Spezifikationen auszuführen.

  1. Erstellen Sie im selben Verzeichnis, das auch quickstart.sh und Dockerfile enthält, eine Datei mit dem Namen cloudbuild.yaml und dem folgenden Inhalt. Diese Datei ist Ihre Build-Konfigurationsdatei. Bei der Build-Erstellung ersetzt Cloud Build $PROJECT_ID automatisch durch Ihre Projekt-ID.

    steps:
    - name: 'gcr.io/cloud-builders/docker'
      args: [ 'build', '-t', 'us-west2-docker.pkg.dev/$PROJECT_ID/quickstart-docker-repo/quickstart-image:tag1', '.' ]
    images:
    - 'us-west2-docker.pkg.dev/$PROJECT_ID/quickstart-docker-repo/quickstart-image:tag1'
  2. Starten Sie den Build mit dem folgenden Befehl:

    gcloud builds submit --region=us-west2 --config cloudbuild.yaml
    

Nach Abschluss des Builds müssten Sie in etwa folgende Ausgabe sehen:

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

  1. Öffnen Sie die Cloud Build-Seite in der Google Cloud Console.

    Zur Seite "Cloud Build"

  2. Wählen Sie Ihr Projekt aus und klicken Sie auf Öffnen.

    Sie sehen die Seite Build-Verlauf:

    Screenshot der Seite "Build-Verlauf"

  3. Wählen Sie im Drop-down-Menü Region die Option us-west2 aus, um Builds in dieser Region aufzurufen.

  4. Klicken Sie auf einen bestimmten Build.

    Es wird die Seite Build-Details angezeigt.

  5. Klicken Sie unter Build-Zusammenfassung auf Build-Artefakte, um sich die Artefakte Ihres Builds anzeigen zu lassen.

    Die Ausgabe sollte in etwa so aussehen:

    Grafik: Screenshot von Build-Artefakten

    Auf dieser Seite können Sie Ihr Build-Log herunterladen und die Image-Details in Artifact Registry aufrufen.

Bereinigen

So vermeiden Sie, dass Ihrem Google Cloud-Konto die auf dieser Seite verwendeten Ressourcen in Rechnung gestellt werden.

  1. Öffnen Sie die Seite „Artifact Registry“ in der Google Cloud Console.

    Seite „Artifact Registry“ öffnen

  2. Wählen Sie Ihr Projekt aus und klicken Sie auf Öffnen.

  3. Wählen Sie quickstart-docker-repo aus.

  4. Klicken Sie auf Löschen.

Sie haben nun die Images, die Sie im Rahmen dieses Schnellstarts erstellt haben, gelöscht.

Weitere Informationen