Déploiement de votre application à partir du code source local avec l'interface de ligne de commande
Vous pouvez déployer votre application directement à partir du code source sur votre poste de travail en local à l'aide de l'interface de ligne de commande IBM Cloud® Code Engine. Utilisez la commande **app create**pour générer une
image à partir de votre source locale et déployez votre application pour faire référence à cette image générée.
Lorsque vous soumettez une génération qui extrait le code d'un répertoire local, votre code source est compressé dans un fichier archive. Code Engine télécharge automatiquement l'image dans un espace de nom IBM Cloud® Container Registry dans votre
compte, puis crée et déploie votre application pour faire référence à cette image générée. Notez que vous ne pouvez cibler IBM Cloud Container Registry que pour vos générations locales. L'image source est créée dans le même espace de nom que
votre image de génération. Pour ce scénario, vous devez fournir uniquement un nom pour l'application et le chemin d'accès à la source locale. Pour obtenir la liste complète des options, voir la commande ibmcloud ce app create.
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.
Vous pouvez choisir d'ignorer certains modèles de fichier à partir de votre code source à l'aide du fichier .ceignore, qui se comporte de la même manière qu'un fichier .gitignore. Par exemple, les entrées d'un fichier
.ceignorepour une application node.js peuvent inclure node_moduleset.npm. Pour plus d'exemples de modèles de fichiers à ignorer, voir le dépôt GitHub.gitignore.
IBM Cloud® Container Registry est requis pour ce scénario.
Avant de commencer
- Configurez votre environnement d'interface de ligne de commande Code Engine.
- Créez et utilisez un projet.
Avant de travailler avec la source locale, assurez-vous que votre source se trouve dans un emplacement accessible sur votre poste de travail en local.
Cet exemple utilise les exempleshttps://github.com/IBM/CodeEngine, en particulier l'exemple helloworld.
-
Téléchargez l'exemple de source
https://github.com/IBM/CodeEnginesur votre poste de travail local à l'aide de la commande suivante.git clone https://github.com/IBM/CodeEngine -
Passez dans le répertoire
CodeEngine\helloworld. -
A partir du répertoire
CodeEngine\helloworld, créez et déployez l'applicationmyapp-local, qui utilise une image générée à partir de la sourceCodeEngine\helloworldsur votre poste de travail en local. Cette commande génère et insère automatiquement l'image vers un espace de nom Container Registry dans votre compte. Si vous ne disposez pas d'un espace-noms Container Registry existant, Code Engine en crée automatiquement un pour vous.ibmcloud ce application create --name myapp-local --build-source ..indique que la source de génération se trouve dans le répertoire de travail en cours.Exemple de sortie
Creating application 'myapp-local'... Packaging files to upload from source path '.'... Submitting build run 'myapp-local-run-220414-171750199'... Creating image 'private.us.icr.io/ce--abcde-glxo4kabcde/app-myapp-local:220414-2117-rdaga'... Waiting for build run to complete... Build run status: 'Running' Build run completed successfully. Run 'ibmcloud ce buildrun get -n myapp-local-run-220414-171750199' to check the build run status. Waiting for application 'myapp-local' to become ready. Configuration 'myapp-local' 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-local' to check the application status. OK https://myapp-local.glxo4kabcde.us-south.codeengine.appdomain.cloudRemarquez que la sortie de la commande
application createfournit 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 nom
ce--abcde-glxo4kabcdedans Container Registry.Le tableau suivant récapitule les options utilisées avec la commande
app createdans cet exemple. Pour plus d'informations sur la commande et ses options, voir la commandeibmcloud ce app create.Description de la commande Option Description --nameNom 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-sourceLe chemin d'accès à la source locale. -
Utilisez la commande **
application get**pour afficher des informations sur votre application, y compris des informations sur la génération.ibmcloud ce application get --name myapp-localExemple de sortie
[...] Name: myapp-local 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-local.Sta.us-south.codeengine.appdomain.cloud Cluster Local URL: http://myapp-local.glxo4kabcde.svc.cluster.local Console URL: https://cloud.ibm.com/codeengine/project/us-south/01234567-abcd-abcd-abcd-abcdabcd1111/application/myapp-local/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--abcde-glxo4kabcde/app-myapp-local:220414-2010-sqsoj Resource Allocation: CPU: 1 Ephemeral Storage: 400M Memory: 4G Registry Secrets: ce-auto-icr-private-us-south Revisions: myapp-local-00001: Age: 23m Latest: true Traffic: 100% Image: private.us.icr.io/ce--abcde-glxo4kabcde/app-myapp-local: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-local-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-local-run-220414-161009244' for details. [...]
Maintenant que votre application est créée et déployée à partir du code source en local, 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**.
Au lieu de générer votre image à partir de la source locale et de déployer votre application avec une seule commande, vous pouvez choisir de générer à partir de la source locale en premier avant de déployer votre application. Voir Création d'une configuration de génération qui extrait la source d'un poste de travail local.
Lorsque votre application est déployée à partir de la source locale ou du code source du référentiel à partir de l'interface de ligne de commande, l'exécution de la 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 le IBM Cloud Code Engine GitHub.