Job aus Images in IBM Cloud Container Registry erstellen

Sie können eine Jobkonfiguration erstellen, die ein Image in IBM Cloud® Container Registry verwendet. Sie können den Job 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 erstellen 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.

Job mit Referenzierung eines Images in Container Registry über die Konsole erstellen

Mit der Container Registry-Konsole können Sie eine Jobkonfiguration erstellen, die ein Image in Code Engine verwendet.

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 Job aus Images in einer privaten Registry erstellen.

  1. Öffnen Sie die Code Engine-Konsole.
  2. Wählen Sie „ Erstellen “ aus.
  3. Wählen Sie ein Projekt aus der Liste der verfügbaren Projekte aus. Sie können auch ein neues erstellen. Bitte beachten Sie, dass Sie über ein ausgewähltes Projekt verfügen müssen, um einen Job erstellen zu können.
  4. Wählen Sie Job aus.
  5. Geben Sie einen Namen für den Job ein. Beispiel: myjob.
  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 Namen des Image in der Registry aus, auf den der Job Code Engine verweisen soll. 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 die Standardwerte für Umgebungsvariablen oder Laufzeiteinstellungen. Weitere Informationen zu diesen Optionen finden Sie unter Optionen für Erstellung und Ausführung von Jobs.
  13. Klicken Sie auf der Seite 'Job erstellen' auf Erstellen.
  14. Nachdem Ihr Job erstellt wurde, wird die Jobseite für Ihren bestimmten Job geöffnet. Klicken Sie auf Ihrer Jobseite auf Job übergeben, um einen Job auf der Basis der aktuellen Konfiguration zu übergeben.

Nachdem Sie Ihren Job erstellt haben und Ihren Job ausführen, können Sie auf Ihrer Jobseite Details zu Ihrer Jobkonfiguration und Jobausführungen anzeigen.

Wenn Sie den Registry-Zugriff hinzufügen möchten, bevor Sie einen Job erstellen, lesen Sie die Informationen im Abschnitt Auf Container-Registrys zugreifen.

Job mit einem Image in Container Registry über die Befehlszeilenschnittstelle erstellen

Verwenden Sie den Befehl job create, um eine Jobkonfiguration zu erstellen, die ein Image in IBM Cloud® Container Registry über die Befehlszeilenschnittstelle verwendet. Eine umfassende Liste der Optionen finden Sie im Abschnitt über den Befehl ibmcloud ce job 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 Ihren Job und referenzieren Sie das Image hello_repo in Container Registry. Mit dem folgenden Befehl job create wird beispielsweise der Job myhellojob zur Referenzierung von us.icr.io/mynamespace/hello_repo mit den Zugriffsinformationen myregistry erstellt.

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

    Der Name des Images für diesen Job 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.

Nächste Schritte

  • Nachdem Sie Ihren Job erstellt haben, übergeben Sie ihn zwecks Ausführung. Weitere Informationen finden Sie unter Job ausführen. Sie können Ihren Job mehrmals ausführen.

  • Wenn Sie Details zu Ihrem Job und zu Jobausführungen anzeigen möchten, nachdem Sie Ihren Job ausgeführt haben, finden Sie weitere Informationen unter Auf Jobdetails zugreifen.

  • Nachdem Ihr Job erstellt wurde, sollten Sie erwägen, Ihre Jobs ereignisgesteuert zu konfigurieren. Mithilfe von Ereignissubskriptionen können Sie Ihre Jobs mittels periodischer Zeitpläne auslösen oder Ihren Job so einstellen, dass er auf Ereignisse wie Dateiuploads reagiert.

  • Sie können Ihren Job aktualisieren und den zugehörigen referenzierten Code in irgendeiner der folgenden Arten verwenden, unabhängig davon, wie Sie Ihren Job 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 Erstellen (oder Aktualisieren) Ihres Jobs lediglich einen Verweis auf das Image angeben, der auf den Speicherort Ihrer Container-Registry verweist. Sie können Ihren Job anhand von Images aus einem öffentlichen oder privaten Registry erstellen (oder aktualisieren) und anschließend während der Ausführung Ihres Jobs auf das referenzierte Image zugreifen.

      Wenn Sie Ihren Job mit dem Befehl job create erstellt und die Option --build-source angegeben haben, um das Container-Image aus der lokalen Quelle oder der Repository-Quelle zu erstellen, und Sie Ihren Job so ändern möchten, dass er auf ein anderes Container-Image verweist, müssen Sie zuerst die Zuordnung des Builds aus Ihrem Job entfernen. Führen Sie beispielsweise ibmcloud ce job update -n JOB_NAME --build-clear aus. Nachdem Sie die Zuordnung des Builds zu Ihrem Job entfernt haben, können Sie den Job aktualisieren, sodass er auf ein anderes Image verweist.

    • Wenn Sie mit Quellcode beginnen, der sich in einem Git-Repository befindet, können Sie Code Engine überlassen, das Image aus Ihrer Quelle zu erstellen und den Job mit einer einzelnen Operation zu erstellen (oder zu aktualisieren). In diesem Szenario lädt Code Engine Ihr Image in IBM Cloud® Container Registry hoch. Weitere Informationen finden Sie unter Job aus Repository-Quellcode erstellen. Wenn Sie mehr Kontrolle über die Erstellung Ihres Image haben möchten, können Sie das Image mit Code Engine generieren, bevor Sie Ihren Job erstellen (oder aktualisieren) und ausführen.

    • Wenn Sie mit Quellcode beginnen, der sich auf einer lokalen Workstation befindet, können Sie Code Engine das Image aus Ihrer Quelle generieren und den Job mit einem einzelnen CLI-Befehl erstellen lassen. In diesem Szenario lädt Code Engine Ihr Image in IBM Cloud® Container Registry hoch. Weitere Informationen finden Sie unter Job aus lokalem Quellcode über die Befehlszeilenschnittstelle erstellen. Wenn Sie mehr Kontrolle über die Erstellung Ihres Image haben möchten, können Sie das Image mit Code Engine generieren, bevor Sie Ihren Job erstellen (oder aktualisieren) und ausführen.

    Sie können beispielsweise festlegen, dass Code Engine den Build Ihrer lokalen Quelle bearbeiten soll, wenn Sie die Entwicklung Ihrer Quelle für den Job weiterentwickeln. Nachdem das Image fertiggestellt wurde, können Sie den Job aktualisieren, um auf das gewünschte Image zu verweisen. Sie können diesen Prozess nach Bedarf wiederholen.

    Wenn Sie Ihren aktualisierten Job ausführen, wird die neueste Version Ihres referenzierten Container-Image für die Jobausführung verwendet, 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 Jobausführung verwendet.

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