Création de votre travail à partir du code source local avec l'interface de ligne de commande
Vous pouvez créer votre travail directement à partir du code source sur votre poste de travail local à l'aide de l'interface de ligne de commande IBM Cloud® Code Engine. Utilisez la commande **job create**pour générer une image à
partir de votre source locale et définissez la configuration de votre travail pour faire référence à cette image générée.
Lorsque vous soumettez une génération qui extrait le code d'un répertoire local, votre code source est compressé dans un fichier archive. Code Engine télécharge automatiquement l'image sur un espace de nom IBM Cloud® Container Registry dans votre
compte, puis crée votre travail pour référencez cette image générée. Notez que vous ne pouvez cibler que IBM Cloud Container Registry pour vos générations locales. Pour ce scénario, vous devez fournir uniquement un nom pour le travail et le
chemin d'accès à la source locale. Pour obtenir la liste complète des options, voir la commande ibmcloud ce job create.
Pour plus d'informations sur les droits requis pour l'accès aux registres d'images, voir Configuration des droits pour les registres d'images.
Vous pouvez choisir d'ignorer certains modèles de fichier à partir de votre code source à l'aide du fichier .ceignore, qui se comporte de la même manière qu'un fichier .gitignore. Par exemple, les entrées d'un fichier
.ceignorepour une application node.js peuvent inclure node_moduleset.npm. Pour découvrir d'autres exemples de modèles de fichiers à ignorer, consultez le dépôt.gitignore de GitHub.
IBM Cloud® Container Registry est requis pour ce scénario.
Avant de commencer
- Configurez votre environnement d'interface de ligne de commande Code Engine.
- Créez et utilisez un projet.
- Votre source doit être dans un emplacement accessible sur votre poste de travail local.
Cet exemple utilise les exempleshttps://github.com/IBM/CodeEngine, en particulier l'exemple helloworld.
-
Téléchargez l'exemple de source
https://github.com/IBM/CodeEnginesur votre poste de travail local à l'aide de la commande suivante.git clone https://github.com/IBM/CodeEngine -
Passez dans le répertoire
CodeEngine\helloworld. -
A partir du répertoire
CodeEngine\helloworld, créez le travailmyjob-local, qui utilise une image générée à partir de la sourceCodeEngine\helloworldsur votre poste de travail local. Cette commande génère et repousse automatiquement l'image vers un espace de nom IBM Cloud Container Registry dans votre compte. Si vous ne disposez pas d'un espace-noms Container Registry existant, Code Engine en crée automatiquement un pour vous. En ajoutant l'option--wait, cela indique que le travail doit attendre la fin de la génération d'image.ibmcloud ce job create --name myjob-local --build-source . --wait.indique que la source de génération se trouve dans le répertoire de travail en cours.Exemple de sortie
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. OKComme nous avons spécifié l'option «
--wait», la sortie de lajob createcommande fournit des informations sur la progression de la compilation avant même que la tâche ne soit créée.Dans cet exemple, l'image générée est téléchargée dans l'espace de nom
ce--abcde-glxo4kabcdedans Container Registry.Le tableau suivant récapitule les options utilisées avec la commande
job createdans cet exemple. Pour plus d'informations sur la commande et ses options, voir la commandeibmcloud ce job create.Description de la commande Option Description --nameNom du travail. Utilisez un nom unique dans le projet. Cette valeur est requise.
- Le nom doit commencer et se terminer par un caractère alphanumérique en minuscules.
- Le nom doit contenir 63 caractères ou moins et peut contenir des lettres, des nombres et des traits d'union (-).
--build-sourceLe chemin d'accès à la source locale. --waitIndique d'attendre la fin de la génération d'image avant de créer le travail. -
(Facultatif) Utilisez la commande **
job get**pour afficher des informations sur votre travail, y compris des informations sur la génération.ibmcloud ce job get --name myjob-localExemple de sortie
[...] 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.. [...] -
Maintenant que votre travail est créé et que votre image est générée, exécutez votre travail qui référence l'image générée. Cet exemple de commande exécute l'exécution du travail
myjobrun-localen fonction de la configuration de travailmyjob-local.ibmcloud ce jobrun submit --name myjobrun-local --job myjob-local -
(Facultatif) Affichez les détails de l'exécution de votre travail.
ibmcloud ce jobrun get --name myjobrun-localExemple de sortie
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
Maintenant que votre travail est créé et exécuté à partir du code source du référentiel, vous pouvez mettre à jour le travail pour répondre à vos besoins à l'aide de la commandeibmcloud ce job update.
Pour plus d'informations sur la mise à jour des travaux, voir Mise à jour d'un travail. Si vous souhaitez mettre à jour votre source à utiliser avec votre travail, vous devez fournir
l'option --build-source dans la commande job update.
Au lieu de créer votre image à partir de la source locale et de créer votre travail à l'aide d'une seule commande, vous pouvez choisir de générer à partir de la source locale avant la création de votre travail. Voir Création d'une configuration de génération qui extrait la source d'un poste de travail local.
Lorsque votre travail est créé à partir d'une source locale ou d'un code source de référentiel à l'aide de l'interface de ligne de commande, l'exécution de génération résultante n'est pas basée sur une configuration de génération. Les exécutions de génération terminées sont automatiquement supprimées. Les exécutions de génération qui ne sont pas basées sur une configuration de génération sont supprimées après 1 heure si l'exécution de génération aboutit. Si l'exécution de la génération échoue, elle est supprimée au bout de 24 heures. Vous pouvez uniquement afficher des informations sur cette exécution de génération à l'aide de l'interface de ligne de commande. Vous ne pouvez pas afficher cette exécution de génération dans la console.
Etapes suivantes
-
Après avoir créé votre travail, soumettez le travail pour l'exécuter. Voir Exécution d'un travail. Vous pouvez exécuter votre travail plusieurs fois.
-
Après avoir exécuter votre travail, pour afficher les détails de votre travail et de vos exécutions de travail, voir Accès aux détails du travail.
-
Maintenant que votre travail est créé, envisagez de faire vos travaux en fonctions des événements. En utilisant des abonnements à des événements, vous pouvez déclencher vos travaux par des calendriers périodiques ou configurer votre travail pour qu'il réagisse à des événements comme des téléchargements de fichiers.
-
Vous pouvez mettre à jour votre travail et son code référencé avec n'importe quelle manières suivantes, indépendamment de la façon dont vous avez créé ou mis à jour votre travail.
-
Si vous disposez d'une image de conteneur conforme à la norme Open Container Initiative(OCI), il vous suffit de fournir une référence à cette image, qui pointe vers l'emplacement de votre registre de conteneurs, lorsque vous créez (ou mettez à jour) votre tâche. Vous pouvez créer (ou mettre à jour) votre tâche à partir d'images issues d'un registre public ou privé, puis accéder à l'image référencée depuis l'exécution de votre tâche.
Si vous avez créé votre travail à l'aide de la commande
job createet que vous avez spécifié l'option--build-sourcepour générer l'image de conteneur à partir de la source locale ou du référentiel, et que vous souhaitez modifier votre travail pour qu'il pointe vers une autre image de conteneur, vous devez d'abord supprimer l'association de la génération de votre travail. Par exemple, exécutezibmcloud ce job update -n JOB_NAME --build-clear. Après avoir supprimé l'association de la génération de votre travail, vous pouvez mettre à jour le travail pour référencer une image différente. -
Si vous démarrez avec le code source qui réside dans un référentiel Git, vous pouvez choisir de laisser Code Engine prendre soin de générer l'image à partir de votre source et de créer (ou de mettre à jour) le travail avec une opération unique. Dans ce scénario, Code Engine télécharge votre image sur IBM Cloud® Container Registry. Pour en savoir plus, reportez-vous à la section Création d'un travail à partir du code source du référentiel. Si vous souhaitez plus de contrôle sur la génération de votre image, vous pouvez choisir de générer l'image avec Code Engine avant de créer (ou mettre à jour) votre travail et d'exécuter le travail.
-
Si vous démarrez avec le code source résidant sur un poste de travail local, vous pouvez choisir de laisser Code Engine prendre soin de créer l'image à partir de votre source et de créer le travail avec une commande CLI unique. Dans ce scénario, Code Engine télécharge votre image sur IBM Cloud® Container Registry. Pour en savoir plus, reportez-vous à la section Création de votre travail à partir du code source local avec l'interface de ligne de commande. Si vous souhaitez plus de contrôle sur la génération de votre image, vous pouvez choisir de générer l'image avec Code Engine avant de créer (ou mettre à jour) votre travail et d'exécuter le travail.
Par exemple, vous pouvez choisir de laisser Code Engine gérer la génération de votre source locale pendant que vous faites évoluer le développement de votre source pour le travail. Ensuite, après la maturation de l'image, vous pouvez mettre à jour le travail pour référencer l'image spécifique de votre choix. Vous pouvez répéter ce processus si nécessaire.
Lorsque vous exécutez votre travail mis à jour, la dernière version de votre image de conteneur référencée est utilisée pour l'exécution du travail, sauf si une balise est spécifiée pour l'image. Si une balise est spécifiée pour l'image, l'image référencée est utilisée pour l'exécution du travail.
-
Vous recherchez d'autres exemples de code ? Découvrez le site Exemples pour le dépôt « IBM Cloud Code Engine GitHub ».