Déploiement de charges de travail d'application à partir d'images dans un registre privé

Déployez votre application avec Code Engine, qui utilise une image dans un registre privé tel qu'un registre Docker Hub privé. Vous pouvez créer une application à partir de la console ou à l'aide de l'interface de ligne de commande.

Avant de commencer

  • Pour extraire des images d'un registre privé, vous devez d'abord créer un registre privé. Par exemple, pour créer un registre privé du Hub Docker, voir la documentation du Hub Docker.
  • Après avoir créé un registre privé, insérez-y une image.
  • Vous pouvez également configurer un jeton d'accès. En utilisant un jeton d'accès, vous pourrez plus facilement octroyer et révoquer un accès à votre compte Docker Hub sans requérir un changement de mot de passe. Pour plus d'informations sur les jetons d'accès et Docker Hub, voir Créer et gérer des jetons d'accès.

Déploiement d'une application qui référence une image dans un registre privé avec la console

Déployez une application qui utilise une image dans un registre privé à l'aide de la console Code Engine.

Pour pouvoir utiliser une application Code Engine qui fait référence à une image dans un registre privé, vous devez tout d'abord ajouter un accès au registre, extraire l'image, puis la déployer.

  1. Ouvrez la console Code Engine.
  2. Sélectionnez Let's go.
  3. Sélectionnez Application.
  4. Entrez un nom pour l'application, par exemple helloapp. Affectez à votre application un nom qui est unique dans le projet.
  5. 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.
  6. Sélectionnez Image de conteneur et cliquez sur Configurer une image.
  7. Entrez docker.io comme Serveur de registre.
  8. Pour Secret de registre, sélectionnez Créer un secret de registre.
  9. Sur la page Créer un secret de registre, choisissez votre source de registre. Par exemple, Docker Hub.
  10. Entrez un nom d'utilisateur. Pour Docker Hub, il s'agit de votre ID Docker.
  11. Entrez le mot de passe . Pour Docker Hub, vous pouvez utiliser votre mot de passe Docker Hub ou un jeton d'accès. Pour plus d'informations sur les jetons d'accès et Docker Hub, voir Créer et gérer des jetons d'accès.
  12. Cliquez sur Créer pour ajouter un secret de registre pour Code Engine.
  13. Dans la page Configurer l'image, le secret de registre qui a été ajouté est répertorié. Sélectionnez le secret de registre pour votre image.
  14. Sélectionnez l'espace de nom et le nom de l'image dans Docker Hub pour l'application Code Engine à référencer. Par exemple, sélectionnez mynamespace et l'image hello_repo dans cet espace de nom.
  15. Sélectionnez une valeur pour Balise, par exemple latest.
  16. Cliquez sur Terminé. Vous avez sélectionné votre image dans le registre à référencer à partir de votre application.
  17. 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.
  18. Sur la page Créer une application, cliquez sur Créer.
  19. 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 avant de créer une application, voir Ajout d'un accès à un registre de conteneur privé.

Déploiement d'une application avec une image d'un registre privé via l'interface de ligne de commande

Déployez une application qui utilise une image dans un registre de conteneur via l'interface de ligne de commande à l'aide de la commande ibmcloud ce app create.

Avant de commencer

Pour pouvoir utiliser une application Code Engine qui fait référence à une image dans un registre privé, vous devez tout d'abord ajouter un accès au registre, extraire l'image, puis la déployer.

  1. Pour extraire des images d'un registre privé, vous devez d'abord créer un registre privé. Par exemple, pour créer un registre privé du Hub Docker, voir la documentation du Hub Docker. Après avoir créé un registre privé, insérez-y une image. Vous pouvez également configurer un jeton d'accès. En utilisant un jeton d'accès, vous pourrez plus facilement octroyer et révoquer un accès à votre compte Docker Hub sans requérir un changement de mot de passe. Pour plus d'informations sur les jetons d'accès et Docker Hub, voir Créer et gérer des jetons d'accès.

  2. Ajoutez l'accès à votre registre privé pour extraire des images. Pour ajouter un accès à un registre privé à 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 un accès au registre d'un Hub Docker appelé privatedocker qui se trouve à 'https://index.docker.io/v1/' et utilise votre nom d'utilisateur et votre mot de passe.

    ibmcloud ce secret create --format registry --name privatedocker --server 'https://index.docker.io/v1/' --username <Docker_User_Name> --password <Password>
    

    Exemple de sortie

    Creating registry secret 'privatedocker'...
    OK
    
  3. Créez votre application et référencez l'image dans votre registre Docker Hub privé. Par exemple, créez l'application myhelloapp pour référencer docker.io/privaterepo/helloworld à l'aide des informations d'accès de privatedocker.

    ibmcloud ce app create --name myhelloapp --image docker.io/privaterepo/helloworld --registry-secret privatedocker
    

    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, conformément à la norme de l'Open Container Initiative(OCI), vous ne devez fournir qu'une référence à l'image, qui pointe vers l'emplacement de votre registre de conteneurs lorsque vous déployez 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 ? Consultez les exemples pour IBM Cloud Code Engine GitHub.