Quellen in Container einbinden

Cloud Run unterstützt die direkte Bereitstellung von Quellcode. Sie können Ihren Quellcode aber auch in ein Container-Image erstellen und dieses dann in Cloud Run bereitstellen. Sie können Container-Images für jede Cloud Run-Ressource verwenden.

Häufige Anwendungsfälle für die Entkopplung von Build- und Bereitstellungsvorgängen:

  • Continuous Integration und Continuous Delivery: Entwickler erstellen Code und übertragen ihn per Push in ein Quellcode-Repository. Ein CI/CD-System erstellt automatisch einen Container aus diesem Quellcode, führt Tests aus und stellt ihn automatisch in einer Staging-Umgebung bereit.
  • Infrastructure as Code: Cloud Run-Ressourcen, die mit YAML oder Terraform verwaltet werden, verweisen auf eine Container-Image-URL. Der von Entwicklern geschriebene Quellcode muss in ein Container-Image erstellt werden.

Sie können ein beliebiges System verwenden, um einen Container zu erstellen. Auf dieser Seite werden die folgenden Möglichkeiten beschrieben, wie Sie mit Cloud Build Container-Images erstellen können:

Anforderungen für Cloud Run-Dienste

Für Cloud Run-Dienste können Sie Container-Images verwenden, 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.

Hinweis

  • 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 dazu den folgenden Befehl 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
    Ersetzen Sie LOCATION durch den Namen der Region Ihres Container-Repositorys, z. B. us-west2.

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 Google Cloud mithäft von Cloud Build erstellen:

  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. us-docker.pkg.dev/cloudrun/container/hello:latest. Wenn Sie Artifact Registry, das Repository REPO_NAME muss bereits erstellt sein. Die URL hat das Format LOCATION-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:

  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. us-docker.pkg.dev/cloudrun/container/hello:latest. Wenn Sie Artifact Registry, das Repository REPO_NAME muss bereits erstellt sein. Die URL hat das Format LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG .

    Wenn Sie einen Mac mit Apple-Prozessoren verwenden, müssen Sie in der Befehlszeile --platform linux/amd64 angeben.

  3. Ü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, das Repository REPO_NAME muss bereits erstellt sein. Die URL hat das Format LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG .

Wie Sie lokale Dateien von diesem Prozess ausschließen, entnehmen Sie der .dockerignore Konfigurationsdatei Anleitung.

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 den Buildpacks von Google Cloud.

Mit Buildpacks von Google Cloud mithilfe von Cloud Build erstellen

So erstellen Sie mit Buildpacks von Google Cloud:

  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 einen Verweis auf das Container-Image, z. B. us-docker.pkg.dev/cloudrun/container/hello:latest. Wenn Sie Artifact Registry, das Repository REPO_NAME muss bereits erstellt sein. Die URL hat das Format LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG .

  3. Warten Sie, bis der Build abgeschlossen ist.

Mit Buildpacks von Google Cloud über die pack-Befehlszeile erstellen

So erstellen Sie mit dem pack-Befehl:

  1. Installieren Sie Docker, falls noch nicht geschehen.

  2. Installieren Sie pack, falls noch nicht geschehen.

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

  4. 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, das Repository REPO_NAME muss bereits erstellt sein. Die URL hat das Format LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG .

  5. Warten Sie, bis pack abgeschlossen ist.

Weitere Informationen finden Sie in der Anleitung unter Anwendung erstellen.

Nächste Schritte