Container erstellen

Knative-Bereitstellung akzeptiert Container-Images, die mit einem beliebigen Tool erstellt wurden, das Container-Images erstellen kann, solange diese den Containervertrag einhalten. Insbesondere muss Ihr Code den mit der Umgebungsvariable PORT definierten Port auf HTTP-Anfragen überwachen. Diese Umgebungsvariable PORT wird bei der Bereitstellung von Knative automatisch in Ihren Container eingefügt.

Auf dieser Seite werden mehrere Möglichkeiten zum Erstellen von Container-Images beschrieben:

  • Dockerfile verwenden
  • Buildpacks verwenden

Mit einem Dockerfile erstellen

Wenn Sie Dockerfiles verwenden, können Sie eine der folgenden Methoden zum Erstellen nutzen:

  • Mit Cloud Build erstellen
  • Lokal mit Docker erstellen

Mit Cloud Build erstellen

So erstellen Sie Ihr Image in Google Cloud:

  1. Öffnen Sie den Ordner, der die Quellen und das Dockerfile enthält.

  2. Führen Sie diesen Befehl aus:

    gcloud builds submit --tag IMAGE_URL

    Ersetzen Sie IMAGE_URL durch einen Verweis auf das Container-Image, z. B. gcr.io/cloudrun/hello.

Ausführliche Anleitungen zu Cloud Build finden Sie unter In Knative bereitstellen.

Tipps zur Optimierung der Build-Leistung finden Sie unter Builds beschleunigen.

Lokal erstellen und mit Docker per Push übertragen

Wenn Sie Docker lokal installiert haben, können Sie docker build anstelle von Cloud Build oder Buildpacks verwenden.

Bevor Sie Ihre Quellen in ein Container-Image verpacken („containerisieren“), benötigen Sie zusätzlich ein Dockerfile. In der folgenden Anleitung wird Container Registry als Image-Registry verwendet.

So erstellen Sie Container-Image mit Docker:

  1. Öffnen Sie den Ordner, der die Quellen und das Dockerfile enthält.

  2. Führen Sie diesen Befehl aus:

    docker build . --tag IMAGE_URL

    Ersetzen Sie IMAGE_URL durch einen Verweis auf das Container-Image, z. B. gcr.io/cloudrun/hello.

  3. Wenn Docker noch nicht dafür konfiguriert ist, Anfragen an die Container Registry mithilfe der Google Cloud CLI zu authentifizieren, holen Sie dies jetzt mit folgendem Befehl nach:

    gcloud auth configure-docker

    Dieser Schritt ist erforderlich, damit Docker Images per Push oder Pull übertragen kann. Die Konfiguration ist nur einmal notwendig.

  4. Übertragen Sie das Container-Image an die Container Registry per Push:

    docker push IMAGE_URL

    Ersetzen Sie IMAGE_URL durch einen Verweis auf das Container-Image, z. B. gcr.io/cloudrun/hello.

Folgen Sie der Anleitung für die Konfigurationsdatei .dockerignore, um lokale Dateien von diesem Vorgang auszuschließen.

Mit Buildpacks erstellen

Umfassende Informationen zu Buildpacks finden Sie auf der Website von Buildpacks. Google bietet eine Reihe von CNCF-kompatiblen Buildpacks, die Quellcode in Container-Images erstellen, die für die Ausführung auf Google Cloud-Containerplattformen, einschließlich Knative-Bereitstellung, entwickelt wurden.

Folgende Plattformen werden derzeit unterstützt:

  • Einfach loslegen (Go)
  • Node.js
  • Python
  • Java
  • .NET Core

Mit Buildpacks unter Verwendung von Cloud Build erstellen

So erstellen Sie mit einem Buildpack:

  1. Öffnen Sie den Ordner, der die Quellen enthält.

  2. Führen Sie diesen Befehl aus:

    gcloud builds submit --pack image=IMAGE_URL

    Ersetzen Sie IMAGE_URL durch die Container-Image-URL, z. B. gcr.io/myproject/myservice.

  3. Warten Sie, bis der Build abgeschlossen ist.

Mit Buildpack über die pack-Befehlszeile erstellen

So erstellen Sie mit dem pack-Befehl:

  1. Installieren Sie Docker, falls noch nicht geschehen.

  2. Wenn Docker noch nicht dafür konfiguriert ist, Anfragen an die Container Registry mithilfe der Google Cloud CLI zu authentifizieren, holen Sie dies jetzt mit folgendem Befehl nach:

    gcloud auth configure-docker

    Dieser Schritt ist erforderlich, damit Docker Images per Push oder Pull übertragen kann. Die Konfiguration ist nur einmal notwendig.

  3. Installieren Sie pack, falls noch nicht geschehen.

  4. Öffnen Sie den Ordner, der die Quellen enthält.

  5. Führen Sie den folgenden Befehl aus, um einen Build zu erstellen und per Push in die Container Registry zu übertragen:

    pack build --publish IMAGE_URL

    Ersetzen Sie IMAGE_URL durch einen Verweis auf das Container-Image, z. B. gcr.io/cloudrun/hello.

  6. Warten Sie, bis pack abgeschlossen ist.

Weitere Informationen finden Sie in der Anleitung unter Anwendung erstellen.

Nächste Schritte

  • Weitere Informationen zum Vertrag, der für die Bereitstellung in Knative für Container gelten muss, finden Sie unter Containervertrag.

  • Unter Dienste bereitstellen wird beschrieben, wie Sie Ihre erstellten Container für Knative bereitstellen.

  • Wenn Sie die Builds und Bereitstellungen Ihrer Knative-Bereitstellungsdienste mithilfe von Cloud Build-Triggern automatisieren möchten, richten Sie die kontinuierliche Bereitstellung ein.