App-Workloads aus Images in IBM Cloud Container Registry bereitstellen

Mit Code Engine können Sie eine App bereitstellen, die ein Image in IBM Cloud® Container Registry nutzt. Sie können die App in der Konsole oder in der Befehlszeilenschnittstelle erstellen.

Vorbereitende Schritte

Möchten Sie Ihr Projekt so konfigurieren, dass alle Nutzer des Projekts Bilder in „ Container Registry “ speichern und darauf zugreifen können, ohne manuell Registrierungsgeheimnisse anlegen zu müssen? Mit ausreichenden Berechtigungen können Sie diesen Standardzugriff auf die Registry auf der Basis der einzelnen Standorte (Regionen) konfigurieren. Wenn Sie nicht über ausreichende Berechtigungen zum Ausführen dieser Aktionen verfügen, können Sie diese Seite verwenden, um die erforderlichen Berechtigungen zu verstehen. Siehe Projektweite Einstellungen konfigurieren.

App mit Referenzierung eines Images in Container Registry über die Konsole bereitstellen

Implementieren Sie eine Anwendung, die ein Image in Container Registry verwendet, mithilfe der Code Engine-Konsole.

Code Engine kann Bilder automatisch aus einem Container Registry-Namespace in Ihrem Konto mit Pull-Operation extrahieren. Informationen zum Extrahieren von Images aus einem anderen Container Registry-Konto oder einem privaten Docker Hub-Konto finden Sie unter Anwendungs-Workloads aus Images in einer privaten Registry implementieren.

  1. Öffnen Sie die Code Engine-Konsole.
  2. Wählen Sie „ Mit der Erstellung beginnen “.
  3. Wählen Sie ein Projekt aus der Liste der verfügbaren Projekte aus. Sie können auch ein neues erstellen. Sie müssen über ein ausgewähltes Projekt verfügen, um eine Anwendung bereitstellen zu können.
  4. Wählen Sie Anwendung aus.
  5. Geben Sie einen Namen für die Anwendung ein. Beispiel: helloapp. Verwenden Sie einen Namen für die Anwendung, der innerhalb des Projekts eindeutig ist.
  6. Wählen Sie „ Vorhandenes Container-Image verwenden “ aus und klicken Sie auf „ Image konfigurieren “.
  7. Wählen Sie einen Speicherort für die Container-Registry aus, z. B. IBM Registry Dallas.
  8. Wählen Sie Code Engine managed secret für Geheimer Registry-Schlüssel aus. Da in diesem Beispiel ein Bild aus dem Namespace „ Container Registry “ in Ihrem Konto verwendet wird, kann Code Engine das Registry-Secret automatisch für Sie erstellen und verwalten.
  9. Wählen Sie einen vorhandenen Namensbereich und den Namen des Image in der Registry als Referenz für die Code Engine-App aus. Wählen Sie beispielsweise den Namensbereich mynamespace und das Image hello_repo in diesem Namensbereich aus.
  10. Wählen Sie einen Wert für Tag aus; z. B. latest.
  11. Klicken Sie auf Fertig.
  12. Ändern Sie alle Laufzeiteinstellungen bzw. Umgebungsvariablen für Ihre App. Weitere Informationen zu diesen Optionen finden Sie unter Optionen für Endpunktsichtbarkeit von Apps und Optionen für die Bereitstellung einer App.
  13. Klicken Sie auf Erstellen, um die Anwendung zu erstellen.
  14. Nachdem sich der Anwendungsstatus in Bereit geändert hat, können Sie die Anwendung testen. Klicken Sie auf Anwendung testen und klicken Sie anschließend im Teilfenster 'Anwendung testen' auf Anforderung senden. Um die Anwendung in einer Webseite zu öffnen, klicken Sie auf Anwendungs-URL.

Nachdem Sie Ihre Anwendung bereitgestellt haben, können Sie nun Informationen zu Anwendungsrevisionen und zu allen aktiven Instanzen sowie Konfigurationsdetails anzeigen.

Falls Sie den Registry-Zugriff zu einer Container Registry-Instanz hinzufügen wollen, die nicht in Ihren Konto enthalten ist, finden Sie im Abschnitt Zugriff auf eine Container Registry-Instanz hinzufügen weiterführende Informationen.

App mit einem Image in Container Registry über die Befehlszeilenschnittstelle bereitstellen

Implementieren Sie eine Anwendung, die ein Image in IBM Cloud® Container Registry verwendet, mit dem Befehl ibmcloud ce app create über die Befehlszeilenschnittstelle. Eine umfassende Liste der Optionen enthält der Abschnitt über den Befehl ibmcloud ce app create.

Vorbereitende Schritte

  1. Um den Zugriff auf Container Registry hinzuzufügen, erstellen Sie einen IAM-API-Schlüssel. Führen Sie zum Erstellen eines IBM Cloud IAM-API-Schlüssels in der Befehlszeilenschnittstelle den Befehl iam api-key-create aus. Um beispielsweise einen API-Schlüssel namens „ cliapikey “ mit der Beschreibung „ My CLI API key “ zu erstellen und ihn in einer Datei namens „ key_file “ zu speichern, führen Sie den folgenden Befehl aus:

    ibmcloud iam api-key-create cliapikey -d "My CLI API key" --file key_file
    

    Wenn Sie Ihren Schlüssel nicht in einer Datei speichern möchten, müssen Sie den API-Schlüssel notieren, der angezeigt wird, wenn Sie ihn erstellen. Sie können ihn später nicht mehr abrufen.

  2. Fügen Sie nach dem Erstellen des API-Schlüssels den Registry-Zugriff zu Code Engine hinzu. Um Zugriff auf Container Registry über die Befehlszeilenschnittstelle hinzuzufügen, verwenden Sie den Befehl ibmcloud ce secret create --format registry, um einen geheimen Registry-Schlüssel zu erstellen. Der folgende Befehl richtet beispielsweise einen Registrierungszugriff auf eine „ Container Registry “-Instanz mit dem Namen „ myregistry “ ein. Beachten Sie: Obwohl im Beispielbefehl die Optionen --server und --username angegeben sind, ist der Standardwert für die Option --server us.icr.io und die Option --username nimmt den Standardwert iamapikey an, wenn der Server us.icr.io ist.

    ibmcloud ce secret create --format registry --name myregistry --server us.icr.io --username iamapikey --password APIKEY
    

    Beispielausgabe

    Creating registry secret 'myregistry'...
    OK
    
  3. Erstellen Sie Ihre App und referenzieren Sie das Image hello_repo in Container Registry. Mit dem Befehl ibmcloud ce app create wird beispielsweise die App myhelloapp für die Referenzierung von us.icr.io/mynamespace/hello_repo mit den Zugriffsinformationen von myregistry erstellt.

    ibmcloud ce app create --name myhelloapp --image us.icr.io/mynamespace/hello_repo --registry-secret myregistry
    

    Der Name des Images für diese Anwendung hat das Format REGISTRY/NAMESPACE/REPOSITORY:TAG, wobei Angaben für REGISTRY und TAG optional sind. Wird REGISTRY nicht angegeben, ist docker.io der Standardwert. Wird TAG nicht angegeben, ist latest der Standardwert.

  4. Nachdem Ihre App bereitgestellt wurde, können Sie auf die App zugreifen. Um die URL Ihrer App abzurufen, führen Sie den Befehl ibmcloud ce app get --name myhelloapp --output url aus. Wenn Sie cURL bei der myhelloapp-App anwenden, wird Hello World zurückgegeben.

    curl https://myhelloapp.abcdabcdhye.us-south.codeengine.appdomain.cloud
    

Nächste Schritte

Nachdem Ihre App bereitgestellt wurde, können Sie Ihre bereitgestellte App aktualisieren und den zugehörigen referenzierten Code auf irgendeine der folgenden Arten verwenden, unabhängig davon, wie Sie Ihre App erstellt oder zuvor aktualisiert haben:

  • Wenn Sie über ein Container-Image gemäß dem Standard der Open Container Initiative(OCI) verfügen, müssen Sie beim Bereitstellen Ihrer App lediglich einen Verweis auf das Image angeben, der auf den Speicherort Ihrer Container-Registry verweist. Sie können Ihre App mit einem Image in einer öffentlichen Registry oder privaten Registry bereitstellen.

    Wenn Sie Ihre App mit dem Befehl app create erstellt und die Option --build-source angegeben haben, um das Container-Image aus einer lokalen Quelle oder einer Repository-Quelle zu erstellen, und Sie Ihre App so ändern wollen, dass sie auf ein anderes Container-Image verweist, müssen Sie zuerst die Zuordnung des Builds aus Ihrer App entfernen. Führen Sie beispielsweise ibmcloud ce application update -n APP_NAME --build-clear aus. Nachdem Sie die Zuordnung des Builds aus Ihrer App entfernt haben, können Sie die App aktualisieren, sodass sie auf ein anderes Image verweist.

  • Wenn Sie mit Quellcode beginnen, der sich in einem Git-Repository befindet, können Sie es Code Engine überlassen, das Image aus Ihrer Quelle zu erstellen und die App mit einer einzigen Operation bereitzustellen. In diesem Szenario lädt Code Engine Ihr Image in IBM Cloud® Container Registry hoch. Weitere Informationen finden Sie unter App aus Repository-Quellcode bereitstellen. Wenn Sie mehr Kontrolle über den Build Ihres Image wünschen, können Sie das Image mit Code Engine erstellen, bevor Sie Ihre App implementieren.

  • Wenn Sie mit Quellcode beginnen, der sich auf einer lokalen Workstation befindet, können Sie es Code Engine überlassen, das Image aus Ihrer Quelle zu erstellen und die App mit einem einzelnen CLI-Befehl bereitzustellen. In diesem Szenario lädt Code Engine Ihr Image in IBM Cloud® Container Registry hoch. Weitere Informationen finden Sie unter App aus lokalem Quellcode über die CLI bereitstellen. Wenn Sie mehr Kontrolle über den Build Ihres Image wünschen, können Sie das Image mit Code Engine erstellen, bevor Sie Ihre App implementieren.

    Sie könnten beispielsweise festlegen, dass Code Engine den Build Ihrer lokalen Quelle handhaben soll, während Sie Ihre Quelle für die App weiterentwickeln. Nachdem das Image ausgereift ist, können Sie die bereitgestellte App aktualisieren, um auf das gewünschte Image zu verweisen. Sie können diesen Prozess nach Bedarf wiederholen.

Wenn Sie Ihre aktualisierte App bereitstellen, wird die neueste Version Ihres referenzierten Container-Image heruntergeladen und bereitgestellt, sofern kein Tag für das Image angegeben ist. Wenn ein Tag für das Image angegeben wird, wird das mit Tags versehene Image für die Implementierung verwendet.

Benötigen Sie weitere Codebeispiele? Schaut euch die Beispiele im Repository „ IBM Cloud Code Engine “ unter GitHub an.