IBM Cloud Docs
Déploiement de votre application à partir du code source du référentiel

Déploiement de votre application à partir du code source du référentiel

Vous pouvez déployer votre application directement à partir du code source qui se trouve dans un référentiel Git avec la console IBM Cloud® Code Engine et l'interface de ligne de commande. Découvrez les avantages dont vous bénéficiez lorsque vous générez votre image avec Code Engine.

Déploiement de votre application à partir du code source du référentiel à partir de la console

Vous pouvez déployer votre application directement à partir du code source avec la console.

Avant de commencer, planifiez votre génération. Vous pouvez également rechercher des conseils pour la création d'un fichier Dockerfile.

Code Engine peut automatiquement insérer (télécharger) des images dans des espaces de nom IBM Cloud® Container Registry dans votre compte et même créer un espace de nom pour vous. Pour télécharger des images sur un compte Container Registry différent ou sur un compte du concentrateur Docker privé, voir Accès aux registres de conteneurs.

Pour plus d'informations sur les droits requis pour accéder aux registres d'images, voir Configuration des droits pour les registres d'images.

  1. Ouvrez la console Code Engine.
  2. Sélectionnez Let's go.
  3. Sélectionnez Application.
  4. Entrez un nom pour l'application. 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. Notez que vous devez disposer d'un projet sélectionné pour déployer une application.
  6. Sélectionnez Code source.
  7. Cliquez sur Spécifier les détails de génération.
  8. Sélectionnez un référentiel source, par exemple https://github.com/IBM/CodeEngine. Étant donné que nous utilisons un exemple de source qui ne requiert pas de données d'identification, sélectionnez Nonepour l'accès du Code du référentiel. Vous pouvez éventuellement fournir un nom de branche. Si vous ne fournissez pas de nom de branche et que vous laissez la zone vide, Code Engine utilise automatiquement la branche par défaut du référentiel spécifié. Cliquez sur Suivant.
  9. Sélectionnez une stratégie et des ressources pour votre génération. Pour plus d'informations sur les options de génération, voir Planification de votre génération. Cliquez sur Suivant.
  10. Sélectionnez un emplacement de registre de conteneur, tel que IBM Registry Dallas , pour indiquer où stocker l'image de votre sortie de génération. Si votre registre est privé, vous devez configurer l'accès à ce dernier.
  11. Fournit des informations de registre sur l'emplacement de stockage de l'image de votre sortie de génération. Sélectionnez un secret de registre existant ou créez-en un nouveau. Si vous créez votre image sur une instance Container Registry qui se trouve dans votre compte, vous pouvez sélectionner Code Engine managed secret et laisser Code Engine créer et gérer le secret pour vous.
  12. Sélectionnez un espace de nom, un nom et une balise pour votre image. Si vous créez votre image sur une instance IBM Cloud Container Registry qui se trouve dans votre compte, vous pouvez sélectionner un espace-noms existant ou laisser Code Engine créer et gérer l'espace de nom pour vous.
  13. Cliquez sur Terminé.
  14. 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.
  15. Cliquez sur Créer.
  16. Une fois votre exécution de génération soumise, l'image de conteneur générée est envoyée à Container Registry pour être ensuite extraite par l'application et déployée pour vous. 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.

Les exécutions de génération terminées sont automatiquement supprimées. Lorsque votre exécution de génération est basée sur la configuration de génération, cette exécution de génération est supprimée au bout de 3 heures 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 48 heures.

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.

Déploiement de votre application à partir du code source du référentiel avec l'interface de ligne de commande

Vous pouvez déployer votre application directement à partir du code source du référentiel avec l'interface de ligne de commande. Utilisez la commande app create pour générer une image à partir de votre source de référentiel Git et déployez votre application pour référencer cette image générée.

Avant de commencer

Dans ce scénario, Code Engine génère une image à partir de votre source de référentiel Git, télécharge automatiquement l'image dans votre registre de conteneurs, puis crée et déploie votre application pour référencer cette image générée. Vous devez fournir uniquement un nom pour l'application et l'URL du référentiel Git si l'image doit être située dans un compte IBM Cloud® Container Registry. Dans ce cas, Code Engine gère l'espace de nom pour vous. Toutefois, si vous souhaitez utiliser un registre de conteneurs différent, vous devez spécifier l'image et un secret de registre pour ce registre de conteneurs. Pour obtenir la liste complète des options, voir la commande ibmcloud ce app create.

Pour plus d'informations sur les droits requis pour accéder aux registres d'images, voir Configuration des droits pour les registres d'images.

L'exemple de commande **application create**suivant crée et déploie l'application myapp, qui fait référence à une image générée à partir de la source de génération https://github.com/IBM/CodeEngine. Cette commande génère automatiquement l'image et télécharge l'image sur un espace de nom IBM Cloud® Container Registry dans votre compte et l'application fait référence à cette image générée. En spécifiant l'option--build-context-dir, la génération utilise la source dans le répertoirehelloworld. Cet exemple de commande utilise la stratégie dockerfilepar défaut et la taille de génération mediumpar défaut. Étant donné que le nom de branche du référentiel n'est pas spécifié avec l'option--build-commit, Code Engine utilise automatiquement la branche par défaut du référentiel spécifié.

ibmcloud ce application create --name myapp --build-source https://github.com/IBM/CodeEngine --build-context-dir helloworld

Exemple de sortie

Creating application 'myapp'...
Submitting build run 'myapp-run-220411-13abcdefg'...
Creating image 'private.us.icr.io/ce--abcde-4svg40kna19/app-myapp:220411-1756-if8jv'...
Waiting for build run to complete...
Build run status: 'Running'
Build run completed successfully.
Run 'ibmcloud ce buildrun get -n myapp-run-220411-13abcdefg' to check the build run status.
Waiting for application 'myapp' to become ready.
Configuration 'myapp' is waiting for a Revision to become ready.
Ingress has not yet been reconciled.
Waiting for load balancer to be ready.
Run 'ibmcloud ce application get -n myapp' to check the application status.
OK

https://myapp.4svg40kna19.us-south.codeengine.appdomain.cloud

Remarquez que la sortie de la commande application create fournit des informations sur la progression de l'exécution de la compilation avant que l'application ne soit créée et déployée.

Dans cet exemple, l'image générée est téléchargée dans l'espace de nomce--abcde-4svg40kna19 dans Container Registry.

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

Description de la commande
Option Description
--name

Nom de l'application. Utilisez un nom unique dans le projet. Cette valeur est requise.

  • Le nom doit commencer par une lettre minuscule.
  • Le nom doit 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 L'URL du référentiel Git qui contient votre code source ; par exemple, https://github.com/IBM/CodeEngine.
--build-context-dir Répertoire inclus dans le référentiel qui contient le fichier de packs de construction ou le fichier Dockerfile. Cette valeur est facultative.

La sortie suivante montre le résultat de la commande **application get**pour cet exemple, y compris des informations sur la génération.

Exemple de sortie

[...]
Name:          myapp  
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
URL:                https://myapp.4svg40kna19.us-south.codeengine.appdomain.cloud
Cluster Local URL:  http://myapp.4svg40kna19.svc.cluster.local
Console URL:        https://cloud.ibm.com/codeengine/project/us-south/01234567-abcd-abcd-abcd-abcdabcd1111/application/myapp/configuration
Status Summary:  Application deployed successfully

Environment Variables:    
    Type     Name             Value  
    Literal  CE_API_BASE_URL  https://api.private.us-south.codeengine.cloud.ibm.com
    Literal  CE_APP           myapp  
    Literal  CE_DOMAIN        us-south.codeengine.appdomain.cloud  
    Literal  CE_PROJECT_ID    abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f
    Literal  CE_REGION        us-south  
    Literal  CE_SUBDOMAIN     abcdabcdab
Image:                  private.us.icr.io/ce--27fe9-4svg40kna19/app-myapp:220414-2010-sqsoj
Resource Allocation:
  CPU:                1
  Ephemeral Storage:  400M
  Memory:             4G
Registry Secrets:
  ce-auto-icr-private-us-south

Revisions:
  myapp-00001:
    Age:                23m
    Latest:             true
    Traffic:            100%
    Image:              private.us.icr.io/ce--27fe9-4svg40kna19/app-myapp:220414-2010-sqsoj (pinned to 86944c)  
    Running Instances:  0

Runtime:
  Concurrency:    100
  Maximum Scale:  10
  Minimum Scale:  0
  Timeout:        300

Build Information:
  Build Run Name:     myapp-run-220414-161009244
  Build Type:         git
  Build Strategy:     dockerfile-medium
  Timeout:            600
  Source:             https://github.com/IBM/CodeEngine
  Context Directory:  helloworld
  Dockerfile:         Dockerfile

  Build Run Summary:  Succeeded
  Build Run Status:   Succeeded
  Build Run Reason:   All Steps have completed executing
  Run 'ibmcloud ce buildrun get -n myapp-run-220414-161009244' for details.
[...]

Maintenant que votre application est créée et déployée à partir du code source du référentiel, vous pouvez mettre à jour l'application pour répondre à vos besoins à l'aide de la commandeibmcloud ce app update. Pour plus d'informations sur la mise à jour des applications, voir Mise à jour de votre application. Si vous souhaitez mettre à jour votre source à utiliser avec votre application, vous devez fournir l'option --build-sourcedans la commande**application update**.

Lorsque votre application est déployée à partir du code source du référentiel ou à partir de la source locale à 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

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.