Job aus lokalem Quellcode über die Befehlszeilenschnittstelle erstellen
Sie können Ihren Job direkt aus Quellcode auf Ihrer lokalen Workstation über die Befehlszeilenschnittstelle von IBM Cloud® Code Engine erstellen. Verwenden Sie den Befehl job create, um ein Image aus Ihrer lokalen
Quelle zu erstellen und die Konfiguration für Ihren Job zu definieren, um auf dieses erstellte Image zu verweisen.
Wenn Sie einen Build übergeben, der Code aus einem lokalen Verzeichnis extrahiert, wird Ihr Quellcode in eine Archivdatei gepackt. Code Engine lädt das Image automatisch in einen IBM Cloud® Container Registry-Namensbereich in Ihrem Konto hoch
und erstellt dann Ihren Job, um auf dieses erstellte Image zu verweisen. Beachten Sie, dass Sie nur IBM Cloud Container Registry für Ihre lokalen Builds verwenden können. Für dieses Szenario müssen Sie nur einen Namen für den Job und den Pfad
zur lokalen Quelle angeben. Eine umfassende Liste der Optionen finden Sie im Abschnitt über den Befehl ibmcloud ce job create.
Informationen zu den erforderlichen Zugriffsberechtigungen bezüglich Image-Registrys finden Sie unter Berechtigungen für Image-Registrys einrichten.
Sie können bestimmte Dateimuster aus Ihrem Quellcode ignorieren, indem Sie die Datei .ceignore verwenden, die sich ähnlich wie eine .gitignore-Datei verhält. Einträge für eine .ceignore-Datei bezüglich einer
Node.js-Anwendung können beispielsweise node_modules und .npm enthalten. Weitere Beispiele für zu ignorierende Dateimuster finden Sie im Repository „ GitHub.gitignore “.
Für dieses Szenario ist IBM Cloud® Container Registry erforderlich.
Vorbereitende Schritte
- Konfigurieren Sie die Umgebung der Code Engine-Befehlszeilenschnittstelle.
- Erstellen Sie ein Projekt und arbeiten Sie damit.
- Ihre Quelle muss sich an einer zugänglichen Position auf Ihrer lokalen Workstation befinden.
In diesem Beispiel werden https://github.com/IBM/CodeEngine-Beispiele verwendet, insbesondere das Beispiel helloworld.
-
Laden Sie die Beispielquelle
https://github.com/IBM/CodeEnginemit dem folgenden Befehl auf Ihre lokale Workstation herunter.git clone https://github.com/IBM/CodeEngine -
Wechseln Sie in das Verzeichnis
CodeEngine\helloworld. -
Erstellen Sie im Verzeichnis
CodeEngine\helloworldden Jobmyjob-local, der ein Image verwendet, das aus derCodeEngine\helloworld-Quelle auf Ihrer lokalen Workstation erstellt wird. Dieser Befehl erstellt das Image automatisch und überträgt es mit einer Push-Operation an einen IBM Cloud Container Registry-Namensbereich in Ihrem Konto. Wenn Sie nicht über einen Container Registry-Namensbereich verfügen, erstellt Code Engine diesen automatisch für Sie. Durch Hinzufügen der Option--waitwird angegeben, dass die Joberstellung auf den Abschluss des Image-Builds warten soll.ibmcloud ce job create --name myjob-local --build-source . --wait.gibt an, dass sich die Build-Quelle im aktuellen Arbeitsverzeichnis befindet.Beispielausgabe
Creating job 'myjob-local'... Packaging files to upload from source path '.'... Submitting build run 'myjob-local-run-220420-150457582'... Creating image 'private.us.icr.io/ce--abcde-glxo4kabcde/job-myjob-local'... Waiting for build run to complete... Build run status: 'Running' Build run completed successfully. Run 'ibmcloud ce buildrun get -n myjob-local-run-220420-150457582' to check the build run status. OKDa wir die Option „
--wait“ angegeben haben, liefert der Befehljob createBefehls enthält Informationen zum Fortschritt des Build-Laufs, noch bevor der Job erstellt wird.In diesem Beispiel wird das erstellte Image in den Namensbereich
ce--abcde-glxo4kabcdein Container Registry hochgeladen.Die folgende Tabelle vermittelt Ihnen einen Überblick über die Optionen, die in diesem Beispiel beim Befehl
job createverwendet werden. Weitere Informationen zum Befehl und den zugehörigen Optionen finden Sie im Abschnitt über den Befehlibmcloud ce job create.Befehlsbeschreibung Option Beschreibung --nameDer Name des Jobs. Verwenden Sie einen Namen, der innerhalb des Projekts eindeutig ist. Dieser Wert ist erforderlich.
- Der Name muss mit einem alphanumerischen Kleinbuchstaben beginnen und enden.
- Der Name darf maximal 63 Zeichen lang sein und kann Buchstaben, Zahlen und Bindestriche (-) enthalten.
--build-sourceDer Pfad zur lokalen Quelle. --waitGibt an, dass auf den Abschluss der Imageerstellung gewartet werden soll, bevor der Job erstellt wird. -
(Optional) Mit dem Befehl
job getkönnen Sie Informationen zu Ihrem Job anzeigen, einschließlich Informationen zum Build.ibmcloud ce job get --name myjob-localBeispielausgabe
[...] Name: myjob-local ID: abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f Project Name: myproject Project ID: 01234567-abcd-abcd-abcd-abcdabcd1111 Age: 2d15h Created: 2022-04-14T16:10:11-04:00 Image: private.us.icr.io/ce--abcde-glxo4kabcde/job-myjob-local Resource Allocation: CPU: 1 Memory: 4G Registry Secrets: ce-auto-icr-private-us-south Runtime: Mode: task Array Indices: 0 Array Size: 1 Max Execution Time: 7200 Retry Limit: 3 Build Information: Build Run Name: myjob-local-run-220420-150457582 Build Type: local Build Strategy: dockerfile-medium Timeout: 600 Source: . Dockerfile: Dockerfile Build Run Summary: Succeeded Build Run Status: Succeeded Build Run Reason: All Steps have completed executing Run 'ibmcloud ce buildrun get -n myjob-local-run-220420-150457582' for details.. [...] -
Nachdem Ihr Job und Ihr Image erstellt wurden, führen Sie Ihren Job aus, der auf das erstellte Image verweist. Dieser Beispielbefehl führt den Job
myjobrun-localauf der Basis der Jobkonfigurationmyjob-localaus.ibmcloud ce jobrun submit --name myjobrun-local --job myjob-local -
(Optional) Zeigen Sie die Details Ihrer Jobausführung an.
ibmcloud ce jobrun get --name myjobrun-localBeispielausgabe
Getting jobrun 'myjobrun-local'... Getting instances of jobrun 'myjobrun-local'... Getting events of jobrun 'myjobrun-local'... Run 'ibmcloud ce jobrun events -n myjobrun-local' to get the system events of the job run instances. Run 'ibmcloud ce jobrun logs -f -n myjobrun-local' to follow the logs of the job run instances. OK Name: myjobrun-local ID: abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f Project Name: myproject Project ID: 01234567-abcd-abcd-abcd-abcdabcd1111 Age: 2d15h Created: 2022-04-14T16:10:11-04:00 Job Ref: myjob-local Image: private.us.icr.io/ce--abcde-glxo4kabcde/job-myjob-local Resource Allocation: CPU: 1 Ephemeral Storage: 400M Memory: 4G Registry Secrets: ce-auto-icr-private-us-south Runtime: Mode: task Array Indices: 0 Array Size: 1 JOP_ARRAY_SIZE Value: 1 Max Execution Time: 7200 Retry Limit: 3 Status: Completed: 2m40s Instance Statuses: Succeeded: 1 Conditions: Type Status Last Probe Last Transition Pending True 2m44s 2m44s Running True 2m40s 2m40s Complete True 2m40s 2m40s Events: Type Reason Age Source Messages Normal Updated 2m41s (x3 over 2m45s) batch-job-controller Updated JobRun "myjobrun-local" Normal Completed 2m41s batch-job-controller JobRun completed successfully Instances: Name Running Status Restarts Age myjobrun-local-0-0 0/1 Succeeded 0 2m45s
Nachdem Ihr Job erstellt und über Repository-Quellcode ausgeführt wurde, können Sie den Job mit dem Befehl ibmcloud ce job update entsprechend Ihren
Anforderungen aktualisieren. Weitere Informationen zum Aktualisieren von Jobs finden Sie unter Job aktualisieren. Wenn Sie Ihre Quelle für Ihren Job aktualisieren möchten, müssen Sie
die Option --build-source im Befehl job update angeben.
Anstatt Ihr Image aus einer lokalen Quelle zu erstellen und Ihren Job mit einem einzelnen Befehl zu generieren, haben Sie die Möglichkeit, zuerst einen Build aus einer lokalen Quelle zu erstellen, bevor Sie Ihren Job generieren. Siehe Buildkonfiguration erstellen, die Quelle von einer lokalen Workstation extrahiert.
Wenn Ihr Job aus einer lokalen Quelle oder aus Repository-Quellcode über die Befehlszeilenschnittstelle erstellt wird, basiert die resultierende Buildausführung nicht auf einer Buildkonfiguration. Buildausführungen, die abgeschlossen werden, werden letztendlich automatisch gelöscht. Buildausführungen, die nicht auf einer Buildkonfiguration basieren, werden nach einer Stunde gelöscht, wenn die Buildausführung erfolgreich war. Wenn die Buildausführung nicht erfolgreich ist, wird sie nach 24 Stunden gelöscht. Sie können Informationen zu dieser Buildausführung nur mit der Befehlszeilenschnittstelle anzeigen. Sie können diese Buildausführung nicht in der Konsole anzeigen.
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.