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
-
In Container Registry muss ein Image vorhanden sein. Weitere Informationen enthält der Abschnitt Einführung in Container Registry. Alternativ können Sie ein Image aus einer Repository-Quelle oder aus einer lokalen Quelle erstellen.
-
Prüfen Sie, dass Sie auf die Registry zugreifen können. Weitere Informationen finden Sie unter Berechtigungen für Container-Registrys einrichten.
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.
- Öffnen Sie die Code Engine-Konsole.
- Wählen Sie „ Erstellen “ aus.
- 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.
- Wählen Sie Job aus.
- Geben Sie einen Namen für den Job ein. Beispiel:
myjob. - Wählen Sie „ Vorhandenes Container-Image verwenden “ aus und klicken Sie auf „ Image konfigurieren “.
- Wählen Sie einen Speicherort für die Container-Registry aus, z. B.
IBM Registry Dallas. - Wählen Sie
Code Engine managed secretfü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. - 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
mynamespaceund das Imagehello_repoin diesem Namensbereich aus. - Wählen Sie einen Wert für Tag aus; z. B.
latest. - Klicken Sie auf Fertig.
- Ä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.
- Klicken Sie auf der Seite 'Job erstellen' auf Erstellen.
- 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
- Konfigurieren Sie die Umgebung der Code Engine-Befehlszeilenschnittstelle.
- Erstellen Sie ein Projekt und arbeiten Sie damit.
- Bevor Sie mit einem Code Engine-Job arbeiten können, der ein Image in Container Registry referenziert, müssen Sie zuerst Zugriff auf die Registry hinzufügen, damit Code Engine das Image extrahieren kann, wenn der Job ausgeführt wird. Informationen zu den erforderlichen Zugriffsberechtigungen bezüglich Image-Registrys finden Sie unter Berechtigungen für Image-Registrys einrichten.
-
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-createaus. 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_fileWenn 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.
-
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--serverund--usernameangegeben sind, ist der Standardwert für die Option--serverus.icr.iound die Option--usernamenimmt den Standardwertiamapikeyan, wenn der Serverus.icr.ioist.ibmcloud ce secret create --format registry --name myregistry --server us.icr.io --username iamapikey --password APIKEYBeispielausgabe
Creating registry secret 'myregistry'... OK -
Erstellen Sie Ihren Job und referenzieren Sie das Image
hello_repoin Container Registry. Mit dem folgenden Befehljob createwird beispielsweise der Jobmyhellojobzur Referenzierung vonus.icr.io/mynamespace/hello_repomit den Zugriffsinformationenmyregistryerstellt.ibmcloud ce job create --name myhellojob --image us.icr.io/mynamespace/hello_repo --registry-secret myregistryDer Name des Images für diesen Job hat das Format
REGISTRY/NAMESPACE/REPOSITORY:TAG, wobei Angaben fürREGISTRYundTAGoptional sind. WirdREGISTRYnicht angegeben, istdocker.ioder Standardwert. WirdTAGnicht angegeben, istlatestder 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 createerstellt und die Option--build-sourceangegeben 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 beispielsweiseibmcloud ce job update -n JOB_NAME --build-clearaus. 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.