App-Workloads aus Images in einer privaten Registry bereitstellen

Implementieren Sie Ihre App mit Code Engine, das ein Image in einer privaten Registry wie z. B. dem privaten Docker Hub verwendet. Sie können die App in der Konsole oder in der Befehlszeilenschnittstelle erstellen.

Vorbereitende Schritte

  • Wenn Sie Images aus einer privaten Registry mit Pull-Operation extrahieren möchten, müssen Sie zunächst eine private Registry erstellen. Um beispielsweise eine private Docker Hub-Registrierung zu erstellen, siehe Docker Hub-Dokumentation.
  • Nachdem Sie eine private Registrierung erstellt haben, übertragen Sie ein Abbild dorthin.
  • Sie können auch ein Zugriffstoken konfigurieren. Falls Sie ein Zugriffstoken verwenden, können Sie den Zugriff auf das Docker Hub-Konto ohne erforderliche Kennwortänderung erteilen oder widerrufen. Weitere Informationen zu Zugriffstokens und Docker Hub finden Sie unter Erstellen und Verwalten von Zugriffstokens.

App, die auf ein Image in einer privaten Registry verweist, über die Konsole bereitstellen

Stellen Sie eine Anwendung, die ein Image in einer privaten Registry verwendet, mit der Code Engine-Konsole bereit.

Bevor Sie mit einer Code Engine-Anwendung arbeiten können, die auf ein Image in einer privaten Registry verweist, müssen Sie zunächst den Zugriff auf die Registry hinzufügen, das Image extrahieren und anschließend implementieren.

  1. Öffnen Sie die Code Engine-Konsole.
  2. Wählen Sie Los geht's aus.
  3. Wählen Sie Anwendung aus.
  4. 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.
  5. 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.
  6. Wählen Sie Container-Image aus und klicken Sie auf Image konfigurieren.
  7. Geben Sie docker.io als Registry-Server ein.
  8. Wählen Sie für Registrierungsgeheimnis die Option Registrierungsgeheimnis erstellen.
  9. Wählen Sie auf der Seite Registrierungsgeheimnis erstellen Ihre Registrierungsquelle aus. Beispiel: Docker Hub.
  10. Geben Sie einen Benutzernamen ein. Der Name für Docker Hub ist die Docker-ID.
  11. Geben Sie das -Kennwort ein. Für Docker Hub können Sie Ihr Docker-Hub-Kennwort oder ein Zugriffstoken verwenden. Weitere Informationen zu Zugriffstokens und Docker Hub finden Sie unter Erstellen und Verwalten von Zugriffstokens.
  12. Klicken Sie auf Erstellen, um ein Registrierungsgeheimnis für Code Engine hinzuzufügen.
  13. Auf der Seite Bild konfigurieren wird das hinzugefügte Registrierungsgeheimnis aufgelistet. Wählen Sie das Registrierungsgeheimnis für Ihr Bild.
  14. Wählen Sie den Namensbereich und den Namen des Images in Docker Hub 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.
  15. Wählen Sie einen Wert für Tag aus; z. B. latest.
  16. Klicken Sie auf Fertig. Hiermit haben Sie Ihr Image in der Registry als Referenz für die App ausgewählt.
  17. Ä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.
  18. Klicken Sie auf der Seite 'Anwendung erstellen' auf Erstellen.
  19. 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 vor der Erstellung einer App hinzufügen wollen, finden Sie im Abschnitt Zugriff auf eine private Container-Registry hinzufügen weiterführende Informationen.

App mit einem Image aus einer privaten Registry mit CLI implementieren

Mit dem Befehl ibmcloud ce app create können Sie über die Befehlszeilenschnittstelle eine Anwendung bereitstellen, die ein Image in einer Container-Registry nutzt.

Vorbereitende Schritte

Bevor Sie mit einer Code Engine-Anwendung arbeiten können, die auf ein Image in einer privaten Registry verweist, müssen Sie zunächst den Zugriff auf die Registry hinzufügen, das Image extrahieren und anschließend implementieren.

  1. Wenn Sie Images aus einer privaten Registry mit Pull-Operation extrahieren möchten, müssen Sie zunächst eine private Registry erstellen. Um beispielsweise eine private Docker Hub-Registrierung zu erstellen, siehe Docker Hub-Dokumentation. Nachdem Sie eine private Registrierung erstellt haben, übertragen Sie ein Abbild dorthin. Sie können auch ein Zugriffstoken konfigurieren. Falls Sie ein Zugriffstoken verwenden, können Sie den Zugriff auf das Docker Hub-Konto ohne erforderliche Kennwortänderung erteilen oder widerrufen. Weitere Informationen zu Zugriffstokens und Docker Hub finden Sie unter Erstellen und Verwalten von Zugriffstokens.

  2. Fügen Sie Zugriff auf Ihre private Registry hinzu, um Images zu extrahieren. Um Zugriff auf eine private Registry über die CLI hinzuzufügen, verwenden Sie den Befehl ibmcloud ce secret create --format registry, um einen geheimen Registry-Schlüssel zu erstellen. Der folgende Befehl erstellt beispielsweise Registrierungszugriff auf eine Docker Hub-Registrierung namens privatedocker, die sich unter 'https://index.docker.io/v1/' befindet und Ihren Benutzernamen und Ihr Kennwort verwendet.

    ibmcloud ce secret create --format registry --name privatedocker --server 'https://index.docker.io/v1/' --username <Docker_User_Name> --password <Password>
    

    Beispielausgabe

    Creating registry secret 'privatedocker'...
    OK
    
  3. Erstellen Sie Ihre App und verweisen Sie auf das Image in Ihrer privaten Docker-Hub-Registry. Erstellen Sie beispielsweise die App myhelloapp zur Referenzierung von docker.io/privaterepo/helloworld mithilfe der Zugriffsinformationen von privatedocker.

    ibmcloud ce app create --name myhelloapp --image docker.io/privaterepo/helloworld --registry-secret privatedocker
    

    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 nach dem Standard der Open Container Initiative(OCI) verfügen, müssen Sie nur einen Verweis auf das Image angeben, der auf den Speicherort Ihrer Container-Registry verweist, wenn Sie Ihre Anwendung bereitstellen. 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? Sehen Sie sich die Beispiele für IBM Cloud Code Engine GitHub repoan.