Job aus Repository-Quellcode erstellen
Sie können Ihren Job direkt aus Quellcode, der sich in einem Git-Repository befindet, über die IBM Cloud® Code Engine-Konsole und -Befehlszeilenschnittstelle erstellen. Finden Sie heraus, welche Vorteile das Erstellen Ihres Image mit Code Engine bietet.
Job aus Repository-Quellcode über die Konsole erstellen
Sie können Ihren Job direkt aus Quellcode über die Konsole erstellen.
Zur Vorbereitung sollten Sie einen Plan für Ihren Build erstellen. Sie können auch nach Tipps für die Erstellung einer Dockerfile suchen. Bei jeder Ausführung des Jobs wird die aktuellste Version der abhängigen Buildartefakte, einschließlich der Buildpacks und des Container-Image, während des Erstellungsprozesses verwendet und in das resultierende Container-Image eingeschlossen.
Code Engine kann automatisch Images in IBM Cloud® Container Registry-Namensbereiche in Ihrem Konto übertragen (hochladen) und sogar einen Namensbereich für Sie erstellen. Informationen zum Senden von Images an ein anderes Container Registry-Konto oder an ein privates Docker Hub-Konto finden Sie unter Auf Container-Registrys zugreifen.
Informationen zu den erforderlichen Zugriffsberechtigungen bezüglich Image-Registrys finden Sie unter Berechtigungen für Image-Registrys einrichten.
- Öffnen Sie die Code Engine-Konsole.
- Wählen Sie Los geht's aus.
- Wählen Sie Job aus.
- Geben Sie einen Namen für den Job ein. Verwenden Sie einen Namen für den Job, der innerhalb des Projekts eindeutig ist.
- 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 Quellcode aus.
- Klicken Sie auf Builddetails angeben.
- Wählen Sie ein Quellenrepository aus, z. B.
https://github.com/IBM/CodeEngine. Da Sie eine Beispielquelle verwenden, für die keine Berechtigungsnachweise erforderlich sind, wählen SieNonefür den Zugriff auf das Code-Repository aus. Sie können optional einen Verzweigungsnamen angeben. Wenn Sie keinen Verzweigungsnamen angeben und das Feld leer lassen, verwendet Code Engine automatisch die Standardverzweigung des angegebenen Repositorys. Klicken Sie auf Weiter (Next). - Wählen Sie eine Strategie für Ihren Build sowie Ressourcen für Ihren Build aus. Weitere Informationen zu Buildoptionen finden Sie im Abschnitt Build planen. Klicken Sie auf Weiter.
- Geben Sie Registryinformationen dazu an, wo das Image Ihrer Buildausgabe gespeichert werden soll. Wählen Sie einen Speicherort für die Containerregistrierung, z. B.
IBM Registry Dallas. Wenn Ihre Registry privat ist, müssen Sie den Zugriff auf diese Registry einrichten. - Wählen Sie ein bestehendes Registrierungsgeheimnis oder erstellen Sie ein neues. Wenn Sie Ihr Image in einer IBM Cloud Container Registry-Instanz erstellen, die sich in Ihrem Konto befindet, können Sie
Code Engine managed secretauswählen und Code Engine den geheimen Schlüssel für Sie erstellen und verwalten lassen. - Wählen Sie einen Namensbereich, einen Namen und einen Tag für Ihr Image aus. Wenn Sie Ihr Image in einer IBM Cloud Container Registry-Instanz erstellen, die sich in Ihrem Konto befindet, können Sie einen vorhandenen Namensbereich auswählen oder Code Engine den Namensbereich für Sie erstellen und verwalten lassen.
- 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 Erstellen.
- Nachdem Ihre Buildausführung übergeben wurde, wird das erstellte Container-Image an Container Registry gesendet und Ihr Job kann auf das erstellte Image verweisen. Wenn der Job bereit ist, klicken Sie auf Job übergeben, um den Job basierend auf der aktuellen Konfiguration auszuführen.
Buildausführungen, die abgeschlossen werden, werden letztendlich automatisch gelöscht. Wenn Ihre Buildausführung auf der Buildkonfiguration basiert, wird diese Buildausführung nach 3 Stunden gelöscht, wenn die Buildausführung erfolgreich ist.
Wenn die Buildausführung nicht erfolgreich ist, wird sie nach 48 Stunden gelöscht.
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.
Benötigen Sie Hilfe? Mehr erfahren Sie unter Tipps zur Fehlerbehebung bei Builds.
Job aus Repository-Quellcode über die Befehlszeilenschnittstelle erstellen
Sie können Ihren Job über die Befehlszeilenschnittstelle direkt aus Repository-Quellcode erstellen. Verwenden Sie den Befehl job create, um ein Image aus Ihrer Git-Repositoryquelle zu erstellen und die Konfiguration
für Ihren Job zu definieren.
Vorbereitende Schritte
- Konfigurieren Sie die Umgebung der Code Engine-Befehlszeilenschnittstelle.
- Erstellen Sie ein Projekt und arbeiten Sie damit.
In diesem Szenario erstellt Code Engine ein Image aus Ihrer Git-Repositoryquelle, lädt das Image automatisch in Ihre Container-Registry hoch und erstellt dann Ihre Jobkonfiguration, um mit dem Befehl job create auf dieses erstellte Image zu verweisen. Sie müssen nur einen Namen für den Job und die URL zum Git-Repository angeben, wenn sich das Image in einem IBM Cloud Container Registry-Konto befinden soll. In diesem Fall verwaltet Code Engine den
Namensbereich für Sie. Wenn Sie jedoch eine andere Container-Registry verwenden möchten, müssen Sie das Image und ein Registry-Secret für diese Container-Registry angeben. Verwenden Sie den Befehl ibmcloud ce jobrun submit,
um Ihren Job auszuführen, der auf das erstellte Image verweist. Eine vollständige Liste der Optionen finden Sie in den Befehlen ibmcloud ce job create und ibmcloud ce jobrun submit.
Informationen zu den erforderlichen Zugriffsberechtigungen bezüglich Image-Registrys finden Sie unter Berechtigungen für Image-Registrys einrichten.
-
Mit dem Befehl
job createkönnen Sie den Jobmyjob-repogenerieren, um auf ein Image zu verweisen, das aus derhttps://github.com/IBM/CodeEngine-Buildquelle erstellt wird. Dieser Befehl erstellt das Image automatisch und lädt das Image in einen IBM Cloud® Container Registry-Namensbereich in Ihrem Konto hoch. Jobausführungen für diesen Job verweisen auf dieses erstellte Image. Wenn Sie die Option--build-context-dirangeben, verwendet der Build die Quelle im Verzeichnishelloworld. Dieser Beispielbefehl verwendet die Standardstrategiedockerfileund die Standardbuildgrößemedium. Da der Name der Verzweigung des Repositorys nicht mit der Option--build-commitangegeben wird, verwendet Code Engine automatisch die Standardverzweigung des angegebenen Repositorys. Durch Hinzufügen der Option--waitwird angegeben, dass die Joberstellung auf den Abschluss des Image-Builds warten soll.ibmcloud ce job create --name myjob-repo --build-source https://github.com/IBM/CodeEngine --build-context-dir helloworld --waitBeispielausgabe
Creating job 'myjob-repo'... Submitting build run 'myjob-repo-run-220420-15590196'... Creating image 'private.us.icr.io/ce--abcde-glxo4kabcde/job-myjob-repo'... Waiting for build run to complete... Build run status: 'Running' Build run completed successfully. Run 'ibmcloud ce buildrun get -n myjob-repo-run-220420-15590196' to check the build run status. OKDa wir die Option
--waitangegeben haben, liefert die Ausgabe desjob createInformationen über den Verlauf des Build-Laufs, bevor der Auftrag erstellt wird.In diesem Beispiel wird das erstellte Image in den Namensbereich
ce--abcde-glxo4kabcdein IBM Cloud 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-sourceDie URL des Git-Repositorys, in dem der Quellcode enthalten ist; Beispiel: https://github.com/IBM/CodeEngine.--build-context-dirDas Verzeichnis in dem Repository, in dem die Datei mit den Buildpacks oder die Dockerfile enthalten ist. Dieser Wert ist optional. --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-repoBeispielausgabe
[...] Name: myjob-repo 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-repo 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-repo-run-220420-15590196 Build Type: git Build Strategy: dockerfile-medium Timeout: 600 Source: https://github.com/IBM/CodeEngine Context Directory: helloworld 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-repo-run-220420-15590196' 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-repoauf der Basis der Jobkonfigurationmyjob-repoaus.ibmcloud ce jobrun submit --name myjobrun-repo --job myjob-repo -
(Optional) Zeigen Sie die Details Ihrer Jobausführung an.
ibmcloud ce jobrun get --name myjobrun-repoBeispielausgabe
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-repo Image: private.us.icr.io/ce--abcde-glxo4kabcde/job-myjob-repo 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: 90s Instance Statuses: Succeeded: 1 Conditions: Type Status Last Probe Last Transition Pending True 101s 101s Running True 91s 91s Complete True 90s 90s Events: Type Reason Age Source Messages Normal Updated 91s (x4 over 102s) batch-job-controller Updated JobRun "myjobrun-repo" Normal Completed 91s batch-job-controller JobRun completed successfully Instances: Name Running Status Restarts Age myjobrun-repo-0-0 0/1 Succeeded 0 102s
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.
Wenn Ihr Job aus Repository-Quellcode oder aus lokaler Quelle ü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 nach dem Standard der Open Container Initiative(OCI) verfügen, müssen Sie bei der Erstellung (oder Aktualisierung) Ihres Auftrags lediglich einen Verweis auf das Image angeben, der auf den Speicherort Ihrer Container-Registry verweist. Sie können Ihren Auftrag aus Bildern in einem öffentliches Register oder privates Register erstellen (oder aktualisieren) und dann von Ihrem Auftragslauf aus auf das referenzierte Bild 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 Bildes wünschen, können Sie das Bild erstellen) mit Code Engine wählen, bevor Sie Ihren Auftrag erstellen (oder aktualisieren) und den Auftrag 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? Sehen Sie sich die Beispiele für IBM Cloud Code Engine GitHub repoan.