Création d'un travail à partir d'images dans IBM Cloud Container Registry
Créez votre configuration de travail qui utilise une image dans IBM Cloud® Container Registry. Vous pouvez créer un travail à partir de la console ou avec l'interface de ligne de commande.
Avant de commencer
-
Vous devez disposer d'une image dans Container Registry. Pour plus d'informations, voir Initiation à Container Registry. Vous pouvez également générer une image à partir de la source du référentiel ou de la source locale.
-
Vérifiez que vous pouvez accéder au registre. Pour plus d'informations, voir Configuration de droits d'accès aux registres de conteneurs.
Vous souhaitez configurer votre projet de manière à ce que tous les utilisateurs puissent stocker et consulter des images sur Container Registry sans avoir à créer manuellement des secrets de registre? Avec des droits suffisants, vous pouvez configurer cet accès au registre par défaut par emplacement (région). Si vous ne disposez pas des droits suffisants pour effectuer ces actions, vous pouvez utiliser cette page pour vous aider à comprendre les droits requis. Voir Configuration des paramètres à l'échelle du projet.
Création d'un travail qui fait référence à une image dans Container Registry à l'aide de la console
Créez une configuration de travail qui utilise une image dans Container Registry à l'aide de la console Code Engine.
Code Engine peut automatiquement extraire des images à partir d'un espace de nom Container Registry dans votre compte. Pour extraire des images d'un autre compte Container Registry ou d'un compte du Docker Hub privé, voir Créer un travail à partir d'images dans un registre privé.
- Ouvrez la console Code Engine.
- Sélectionnez « Commencer la création ».
- Sélectionnez un projet dans la liste des projets disponibles. Vous pouvez aussi en créer un. Notez que vous devez disposer d'un projet sélectionné pour créer un travail.
- Sélectionnez Travail.
- Entrez un nom pour le travail, par exemple
myjob. - Sélectionnez « Utiliser une image de conteneur existante », puis cliquez sur « Configurer l'image ».
- Sélectionnez un emplacement de registre de conteneurs, tel que
IBM Registry Dallas. - Sélectionnez
Code Engine managed secretpour Registry secret. Comme cet exemple utilise une image située dans l'espace de noms Container Registry de votre compte, Code Engine peut créer et gérer automatiquement le secret de registre à votre place. - Sélectionnez un espace de nom existant et le nom de l'image dans le registre pour le travail Code Engine à référencer. Par exemple, sélectionnez
mynamespaceet l'imagehello_repodans cet espace de nom. - Sélectionnez une valeur pour Balise, par exemple
latest. - Cliquez sur Terminé.
- Modifiez les valeurs par défaut des variables d'environnement ou des paramètres d'exécution. Pour plus d'informations sur ces options, voir Options de création et d'exécution d'un travail.
- Sur la page Créer un travail, cliquez sur Créer.
- Une fois votre travail créé, sa page s'affiche. Dans votre page de travail, cliquez sur Soumettre le travail pour soumettre un travail basé sur la configuration actuelle.
Maintenant que vous avez créé votre travail et exécuter votre travail, vous pouvez afficher les détails de votre configuration de travail et de votre travail à partir de votre page de travail.
Si vous souhaitez ajouter un accès au registre avant de créer un travail, voir Accès aux registres de conteneurs.
Création d'un travail avec une image dans Container Registry via l'interface de ligne de commande
Créez une configuration de travail qui utilise une image dans IBM Cloud® Container Registry avec l'interface de ligne de commande, utilisez la commande**job create**. Pour obtenir la liste complète des options, voir la commande
ibmcloud ce job create.
Avant de commencer
- Configurez votre environnement d'interface de ligne de commande Code Engine.
- Créez et utilisez un projet.
- Avant de pouvoir utiliser un travail Code Engine qui référence une image dans Container Registry, vous devez d'abord ajouter l'accès au registre afin que Code Engine puisse extraire l'image lors de l'exécution du travail. 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.
-
Pour ajouter un accès dans Container Registry, créez une clé d'API IAM. Pour créer une clé d'API IAM IBM Cloud à partir de l'interface de ligne de commande, exécutez la commande
iam api-key-create. Par exemple, pour créer une clé API nommée «cliapikey» avec la description «My CLI API key» et l'enregistrer dans un fichier nommé «key_file», exécutez la commande suivante :ibmcloud iam api-key-create cliapikey -d "My CLI API key" --file key_fileSi vous choisissez de ne pas sauvegarder votre clé dans un fichier, vous devez enregistrer la clé d'API qui s'affiche lors de sa création. Vous ne pourrez pas la récupérer ultérieurement.
-
Après avoir créé votre clé d'API, ajoutez un accès au registre à Code Engine. Pour ajouter l'accès à Container Registry à l'aide de l'interface de ligne de commande, utilisez la commande
ibmcloud ce secret create --format registrypour créer un secret de registre. Par exemple, la commande suivante crée une entrée de registre permettant d'accéder à une instance d' Container Registry nomméemyregistry. Notez que, même si les options--serveret--usernamesont spécifiées dans l'exemple de commande, la valeur par défaut pour l'option--serverestus.icr.ioet que l'option--usernameprend par défaut la valeuriamapikeylorsque le serveur estus.icr.io.ibmcloud ce secret create --format registry --name myregistry --server us.icr.io --username iamapikey --password APIKEYExemple de sortie
Creating registry secret 'myregistry'... OK -
Créez votre configuration de travail et référencez l'image
hello_repodans Container Registry. Par exemple, la commandejob createsuivante crée le travailmyhellojobpour faire référence auus.icr.io/mynamespace/hello_repoà l'aide des informations d'accès demyregistry.ibmcloud ce job create --name myhellojob --image us.icr.io/mynamespace/hello_repo --registry-secret myregistryLe format du nom de l'image pour ce travail est
REGISTRY/NAMESPACE/REPOSITORY:TAG, oùREGISTRYetTAGsont facultatifs. SiREGISTRYn'est pas spécifié, la valeur par défaut estdocker.io. SiTAGn'est pas spécifié, la valeur par défaut estlatest.
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 ».