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

Cet exemple utilise les exempleshttps://github.com/IBM/CodeEngine, en particulier l'exemple helloworld.

  1. 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
    
  2. Passez dans le répertoire CodeEngine\helloworld.

  3. A partir du répertoire CodeEngine\helloworld, créez le travailmyjob-local, qui utilise une image générée à partir de la source CodeEngine\helloworld sur 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.
    OK
    

    Comme nous avons spécifié l'option « --wait », la sortie de la job create commande 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 nomce--abcde-glxo4kabcde dans Container Registry.

    Le tableau suivant récapitule les options utilisées avec la commande job create dans cet exemple. Pour plus d'informations sur la commande et ses options, voir la commande ibmcloud ce job create.

    Description de la commande
    Option Description
    --name

    Nom 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-source Le chemin d'accès à la source locale.
    --wait Indique d'attendre la fin de la génération d'image avant de créer le travail.
  4. (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-local
    

    Exemple 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..
    [...]
    
  5. 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 travail myjob-local.

    ibmcloud ce jobrun submit --name myjobrun-local --job myjob-local
    
  6. (Facultatif) Affichez les détails de l'exécution de votre travail.

    ibmcloud ce jobrun get --name myjobrun-local
    

    Exemple 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 create et que vous avez spécifié l'option --build-source pour 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écutez ibmcloud 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 ».