Cloud Run akzeptiert Container-Images, die mit einem beliebigen Tool erstellt wurden, das Container-Images erstellen kann, solange diese den Containervertrag berücksichtigen.
Insbesondere muss Ihr Code den mit der Umgebungsvariable PORT
definierten Port auf HTTP-Anfragen überwachen. Diese Umgebungsvariable PORT
wird von Cloud Run automatisch in Ihren Container eingefügt.
Auf dieser Seite werden mehrere Möglichkeiten zum Erstellen von Container-Images beschrieben:
- Dockerfile verwenden
- Buildpacks von Google Cloud verwenden
Hinweise
Sie benötigen die Google Cloud CLI, um einige der Befehle auf dieser Seite auszuführen.
Erstellen Sie ein Repository in einer unterstützten Container Registry. Führen Sie Folgendes aus, um ein Artifact Registry-Repository zu erstellen:
gcloud artifacts repositories create REPOSITORY \ --repository-format=docker \ --location=LOCATION \ --description="DESCRIPTION" \ --immutable-tags \ --async
Sie können Docker für den Zugriff auf Artifact Registry mit dem gcloud CLI Credential Helper konfigurieren
gcloud auth configure-docker LOCATION-docker.pkg.dev
Mit einem Dockerfile erstellen
Bevor Sie Ihre Quellen mit Docker oder mit Cloud Build in ein Container-Image verpacken („containerisieren“), benötigen Sie zusätzlich ein Dockerfile. Die Hello World-Beispiele enthalten Beispielanwendungen und Dockerfiles in vielen gängigen Sprachen.
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
Sie können das Image mithilfe von Cloud Build in Google Cloud erstellen:
Öffnen Sie den Ordner, der die Quellen und das Dockerfile enthält.
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.
us-docker.pkg.dev/cloudrun/container/hello:latest
. Wenn Sie Artifact Registry verwenden, muss das Repository REPO_NAME bereits erstellt sein. Die URL hat die FormLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
.
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 den Buildpacks von Google Cloud verwenden.
So erstellen Sie Container-Image mit Docker:
Öffnen Sie den Ordner, der die Quellen und das
Dockerfile
enthält.Führen Sie diesen Befehl aus:
docker build . --tag IMAGE_URL
Ersetzen Sie IMAGE_URL durch einen Verweis auf das Container-Image, z. B.
us-docker.pkg.dev/cloudrun/container/hello:latest
. Wenn Sie Artifact Registry verwenden, muss das Repository REPO_NAME bereits erstellt sein. Die URL hat die FormLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
.Wenn Sie einen Mac mit Apple-Prozessor verwenden, müssen Sie
--platform linux/amd64
in der Befehlszeile angeben.Übertragen Sie das Container-Image per Push an eine unterstützte Container-Registry:
docker push IMAGE_URL
Ersetzen Sie IMAGE_URL durch einen Verweis auf das Container-Image, z. B.
us-docker.pkg.dev/cloudrun/container/hello:latest
. Wenn Sie Artifact Registry verwenden, muss das Repository REPO_NAME bereits erstellt sein. Die URL hat die FormLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
.
Wie Sie lokale Dateien von diesem Prozess ausschließen entnehmen Sie der Anleitung in der Konfigurationsdatei .dockerignore
.
Mit Buildpacks von Google Cloud erstellen
Google Cloud Buildpacks sind eine Reihe von CNCF-kompatiblen Buildpacks, die Quellcode in Container-Images erzeugen, die für die Ausführung auf Google Cloud-Containerplattformen, einschließlich Cloud Run, entwickelt wurden.
Eine Liste der unterstützten Sprachen finden Sie in der Dokumentation zu Buildpacks von Google Cloud.
Mit Buildpacks von Google Cloud mithilfe von Cloud Build erstellen
So erstellen Sie mit Buildpacks von Google Cloud:
Öffnen Sie den Ordner, der die Quellen enthält.
Führen Sie diesen Befehl aus:
gcloud builds submit --pack image=IMAGE_URL
Ersetzen Sie IMAGE_URL durch einen Verweis auf das Container-Image, z. B.
us-docker.pkg.dev/cloudrun/container/hello:latest
. Wenn Sie Artifact Registry verwenden, muss das Repository REPO_NAME bereits erstellt sein. Die URL hat die FormLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
.Warten Sie, bis der Build abgeschlossen ist.
Mit Buildpacks von Google Cloud über die pack
-Befehlszeile erstellen
So erstellen Sie mit dem pack-Befehl:
Installieren Sie Docker, falls noch nicht geschehen.
Installieren Sie
pack
, falls noch nicht geschehen.Öffnen Sie den Ordner, der die Quellen enthält.
Führen Sie den folgenden Befehl aus, um einen Build zu erstellen und per Push in die unterstützte Container-Registry zu übertragen:
pack build --publish IMAGE_URL
Ersetzen Sie IMAGE_URL durch einen Verweis auf das Container-Image, z. B.
us-docker.pkg.dev/cloudrun/container/hello:latest
. Wenn Sie Artifact Registry verwenden, muss das Repository REPO_NAME bereits erstellt sein. Die URL hat die FormLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
.Warten Sie, bis
pack
abgeschlossen ist.
Weitere Informationen finden Sie in der Anleitung unter Anwendung erstellen.
Nächste Schritte
- Nachdem der Container erstellt wurde, können Sie ihn lokal testen, bevor Sie ihn in Cloud Run bereitstellen. Weitere Informationen finden Sie unter Cloud Run-Dienst lokal testen.
- Im Containervertrag können Sie nachlesen, welche Bedingungen Container für eine Bereitstellung in Cloud Run einhalten müssen.
- Unter Dienste bereitstellen wird erklärt, wie Sie Container in Cloud Run bereitstellen.
- Durch die Einrichtung einer kontinuierlichen Bereitstellung und die Verwendung von Cloud-Build-Triggern können Sie die Build-Erstellung und die Bereitstellung von Cloud Run-Diensten automatisieren.
- Informationen zum Durchführen optimaler Container-Builds für Java-Anwendungen finden Sie unter Java-Container mit Jib erstellen.