Déploiement de charges de travail d'application à partir d'images dans IBM Cloud Container Registry

Déployez votre application avec Code Engine, qui utilise une image dans IBM Cloud® Container Registry. Vous pouvez créer une application à partir de la console ou à l'aide de l'interface de ligne de commande.

Avant de commencer

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.

Déploiement d'une application qui fait référence à une image dans Container Registry à partir de la console

Déployez une application 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 Déploiement de charges de travail d'application à partir d'images dans un registre privé.

  1. Ouvrez la console Code Engine.
  2. Sélectionnez « Commencer la création ».
  3. Sélectionnez un projet dans la liste des projets disponibles. Vous pouvez aussi en créer un. Vous devez disposer d'un projet sélectionné pour déployer une application.
  4. Sélectionnez Application.
  5. Entrez un nom pour l'application, par exemple helloapp. Affectez à votre application un nom qui est unique dans le projet.
  6. Sélectionnez « Utiliser une image de conteneur existante », puis cliquez sur « Configurer l'image ».
  7. Sélectionnez un emplacement de registre de conteneurs, tel que IBM Registry Dallas.
  8. Sélectionnez Code Engine managed secret pour 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.
  9. Sélectionnez un espace de nom existant et le nom de l'image dans le registre de l'application Code Engine à référencer. Par exemple, sélectionnez mynamespace et l'image hello_repo dans cet espace de nom.
  10. Sélectionnez une valeur pour Balise, par exemple latest.
  11. Cliquez sur Terminé.
  12. Modifiez les paramètres d'exécution ou les variables d'environnement de votre application. Pour plus d'informations sur ces options, voir Options de visibilité du nœud final des applications et Options de déploiement d'une application.
  13. Cliquez sur Créer pour créer l'application.
  14. Lorsque l'application prend le statut Prêt, vous pouvez la tester. Cliquez sur Tester l'application, puis sur Envoyer une demande dans le panneau de test de l'application. Pour ouvrir l'application dans une page Web, cliquez sur URL de l'application.

Maintenant que votre application est déployée, vous avez accès à des informations sur ses révisions et sur les instances en cours d'exécution, ainsi qu'aux détails de configuration.

Si vous souhaitez ajouter un accès au registre à une instance Container Registry qui n'est pas dans votre compte, voir Ajout d'un accès à une instance Container Registry.

Déploiement d'une application avec une image dans Container Registry via l'interface de ligne de commande

Déployez une application qui utilise une image dans IBM Cloud® Container Registry avec l'interface de ligne de commande avec la commande ibmcloud ce app create. Pour obtenir la liste complète des options, voir la commande ibmcloud ce app create.

Avant de commencer

  1. 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 via 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_file
    

    Si 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.

  2. 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 registry pour 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ée myregistry. Notez que, même si les options --server et --username sont spécifiées dans l'exemple de commande, la valeur par défaut pour l'option --server est us.icr.io et que l'option --username prend par défaut la valeur iamapikey lorsque le serveur est us.icr.io.

    ibmcloud ce secret create --format registry --name myregistry --server us.icr.io --username iamapikey --password APIKEY
    

    Exemple de sortie

    Creating registry secret 'myregistry'...
    OK
    
  3. Créez votre application et référencez l'image hello_repo dans Container Registry. Par exemple, utilisez la commande ibmcloud ce app create afin de créer l'application myhelloapp pour référencer us.icr.io/mynamespace/hello_repo à l'aide des informations d'accès de myregistry.

    ibmcloud ce app create --name myhelloapp --image us.icr.io/mynamespace/hello_repo --registry-secret myregistry
    

    Le format du nom de l'image de cette application est REGISTRY/NAMESPACE/REPOSITORY:TAG, où REGISTRY et TAG sont facultatifs. Si REGISTRY n'est pas spécifié, la valeur par défaut est docker.io. Si TAG n'est pas spécifié, la valeur par défaut est latest.

  4. Une fois votre application déployée, vous pouvez y accéder. Pour obtenir l'URL de votre application, exécutez ibmcloud ce app get --name myhelloapp --output url. Lorsque vous curez l'application myhelloapp, Hello World est renvoyé.

    curl https://myhelloapp.abcdabcdhye.us-south.codeengine.appdomain.cloud
    

Etapes suivantes

Une fois votre application déployée, vous pouvez mettre à jour votre application déployée et son code référencé avec n'importe quelle manière suivante, indépendamment de la façon dont vous avez créé ou mis à jour votre application :

  • Si vous disposez d'une image de conteneur conforme à la norme Open Container Initiative(OCI), il vous suffit alors de fournir une référence à cette image, qui pointe vers l'emplacement de votre registre de conteneurs, lors du déploiement de votre application. Vous pouvez déployer votre application avec une image dans un registre public ou un registre privé.

    Si vous avez créé votre application à l'aide de la commande app 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 application pour qu'elle pointe vers une autre image de conteneur, vous devez d'abord supprimer l'association de la génération de votre application. Par exemple, exécutez ibmcloud ce application update -n APP_NAME --build-clear. Après avoir retiré l'association de la génération de votre application, vous pouvez mettre à jour l'application 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 construire l'image à partir de votre source et de déployer l'application 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 Déploiement de votre application à 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 créer l'image avec Code Engine avant de déployer votre application.

  • Si vous démarrez avec le code source résidant sur un poste de travail en local, vous pouvez choisir de laisser Code Engine prendre soin de construire l'image à partir de votre source et de déployer l'application 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 Déploiement de votre application à 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 créer l'image avec Code Engine avant de déployer votre application.

    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 l'application. Ensuite, après la maturation de l'image, vous pouvez mettre à jour l'application déployée pour faire référence à l'image spécifique que vous voulez. Vous pouvez répéter ce processus si nécessaire.

Lorsque vous déployez votre application mise à jour, la dernière version de votre image de conteneur référencée est téléchargée et déployée, sauf si une balise est spécifiée pour l'image. Si une balise est spécifiée pour l'image, l'image balisée est utilisée pour le déploiement.

Vous recherchez d'autres exemples de code ? Découvrez le site Exemples pour le dépôt « IBM Cloud Code Engine GitHub ».