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.
- Ouvrez la console Code Engine.
- Sélectionnez Let's go.
- Sélectionnez Application.
- Entrez un nom pour l'application. Affectez à votre application un nom qui est unique dans le projet.
- 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.
- Sélectionnez Code source.
- Cliquez sur Spécifier les détails de génération.
- 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électionnezNonepour 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. - 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.
- 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. - 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 secretet laisser Code Engine créer et gérer le secret pour vous. - 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.
- Cliquez sur Terminé.
- 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.
- Cliquez sur Créer.
- 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
- Configurez votre environnement d'interface de ligne de commande Code Engine.
- Créez et utilisez un projet.
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.
| Option | Description |
|---|---|
--name |
Nom de l'application. Utilisez un nom unique dans le projet. Cette valeur est requise.
|
--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
-
Après le déploiement de votre application, accédez à votre application via une URL.
-
Vous pouvez créer un mappage de domaine personnalisé et l'affecter à votre application. Pour plus d'informations sur le déploiement d'applications dans plusieurs régions avec un nom de domaine personnalisé, voir Configuration d'une application à haute disponibilité.
-
Maintenant que votre application est déployée, envisagez de faire en sorte qu'elle soit pilotée par des événements. En utilisant des abonnements à des événements, vous pouvez déclencher vos applications par des plannings périodiques ou définir votre application pour qu'elle réagisse à des événements tels que des téléchargements de fichiers ou des messagesKafka.
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 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 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écutezibmcloud 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.