Création d'une image de conteneur avec des commandes de génération autonomes (CLI)
Lorsque votre code existe en tant que source dans un fichier local ou dans un dépôt Git, Code Engine fournit des options pour construire votre code en tant qu'image de conteneur, conformément à la norme de l'Open Container Initiative(OCI). Avec l'interface de ligne de commande Code Engine, vous pouvez créer une image de conteneur à l'aide d'une commande unique.
Code Engine offre la flexibilité nécessaire pour gérer le processus de génération pour vous chaque fois que vous déployez votre application à partir du code source du référentiel, déployez votre application à partir du code source local avec l'interface de ligne de commande ou que vous créez un travail à partir du code source du référentiel ou créez votre travail à partir du code source local avec l'interface de ligne de commande.
Toutefois, si vous souhaitez davantage de contrôle sur la génération de votre image de conteneur, Code Engine vous donne la possibilité de générer votre image de conteneur à l'aide de l'une des options suivantes :
- Utilisez une seule commande de l'interface CLI,
buildrun submit, pour exécuter une exécution de génération. L'avantage de cette option est que vous pouvez obtenir votre génération à l'aide d'une seule commande CLI ; cependant, la configuration de la génération n'est pas conservée. - Définissez une configuration de génération à partir de laquelle vous pouvez exécuter plusieurs exécutions de génération. Voir Génération d'une image de conteneur à l'aide d'une configuration de génération.
Une fois que votre génération est terminée et que votre image existe, vous pouvez déployer l'image de conteneur en tant qu'application ou créer un travail qui référence votre image.
Voyons comment générer votre image de conteneur à l'aide d'une commande unique et ne pas référencer une configuration de génération. Dans ce scénario, IBM Cloud® Code Engine extrait le code source à partir d'un référentiel Git ou d'un répertoire local, le génère, puis il envoie (téléchargements) l'image du conteneur à un registre. Vous pouvez choisir des référentiels et des registres publics ou privés. Vous pouvez choisir de spécifier les détails du registre avec un secret de registre pour votre sortie de compilation avec un accès fourni par l'utilisateur. Vous pouvez également choisir de laisser Code Engine prendre soin de construire l'image pour vous à partir de votre source et de stocker l'image dans IBM Cloud Container Registry avec un accès automatique.
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, consultez le dépôt .gitignore deGitHub.
Tenez compte des points suivants avant de générer votre image de conteneur :
-
Avant de commencer à générer des images, passez en revue les informations de planification. Vous devez également vérifier que vous pouvez accéder au registre. Pour plus d'informations, voir Configuration de droits d'accès aux registres de conteneurs.
-
Si vous générez plusieurs versions d'une même image de conteneur, la dernière version de l'image de conteneur est téléchargée et utilisée lorsque vous exécutez votre travail ou déployez votre application, sauf si une balise est spécifiée pour l'image. Si une balise est spécifiée pour l'image, l'image référencée est utilisée pour l'application ou le travail.
-
Les exécutions soumises par l'intermédiaire de l'interface de programmation qui ne font pas référence à une configuration de construction définie sont également visibles depuis la console. Sur la page du projet, cliquez sur Générations d'image pour afficher la liste des générations d'image et des exécutions de génération. Avec l'interface de ligne de commande, utilisez la commande
ibmcloud ce buildrun listpour afficher la liste de toutes les exécutions de génération dans un projet. -
Code Engine dispose de quotas pour les exécutions de génération dans un projet. Pour plus d'informations sur les limites dans Code Engine, voir Limites et quotas pour Code Engine.
Les exécutions de génération terminées sont automatiquement supprimées. Lorsque vous exécutez une exécution de génération avec une seule commande d'interface de ligne de commande de sorte qu'elle ne soit pas basée sur une configuration de génération, cette exécution de génération est supprimée 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.
Exécution d'une génération unique qui extrait la source du référentiel public avec l'interface de ligne de commande
Si votre source se trouve dans un référentiel public et que vous souhaitez utiliser une commande unique pour générer et sortir une image de conteneur, utilisez la commande**buildrun submit** pour créer l'image du conteneur sans
créer de configuration de génération réutilisable.
Pour la sortie de génération, vous pouvez choisir un accès automatique et laisser Code Engine prendre soin de construire l'image pour vous à partir de votre source et de stocker l'image dans IBM Cloud Container Registry. Dans ce cas, il n'est pas nécessaire de spécifier un secret de registre ou l'emplacement du registre d'images. Vous pouvez également choisir l'accès fourni par l'utilisateur et spécifier les détails du registre ainsi qu'un secret de registre pour accéder à votre image construite dans le registre.
Pour obtenir une liste complète des options d'exécution d'une génération unique, voir la commandeibmcloud ce buildrun submit.
Exécution d'une génération unique avec l'interface de ligne de commande (avec la source de référentiel public et l'accès automatique au registre)
Dans ce scénario d'accès automatique, Code Engine génère une image à partir de votre source de référentiel Git public et télécharge l'image vers IBM Cloud Container Registry avec un accès automatique à l'aide des options de génération
à l'aide de la commande**buildrun submit**. Dans ce cas, il n'est pas nécessaire de spécifier un secret de registre ou l'emplacement du registre de l'image.
Voir Configuration des droits pour les registres d'images pour plus d'informations sur la définition des droits requis pour Code Engine pour accéder automatiquement à ces images dans Container Registry.
Avant de commencer
- Configurez votre environnement d'interface de ligne de commande Code Engine.
- Créez et utilisez un projet.
-
Exécutez une génération pour générer une image à partir d'un référentiel Git public et laissez Code Engine stocker automatiquement et accéder à l'image. Par exemple, la commande**
buildrun submit** suivante exécute une exécution de génération appeléehelloworld-buildrunqui se construit à partir de la source dans le référentiel public Githttps://github.com/IBM/CodeEngine.ibmcloud ce buildrun submit --name helloworld-buildrun --source https://github.com/IBM/CodeEngine --context-dir /hello- Dans cet exemple, la commande utilise la stratégie
dockerfilepar défaut et la taille de générationmediumpar défaut. - Étant donné que le nom de branche du référentiel n'est pas spécifié avec l'option
--commit, Code Engine utilise automatiquement la branche par défaut du référentiel spécifié, qui estmainpour ce référentiel Git. - En ne spécifiant pas l'emplacement du registre d'images ou un secret de registre, Code Engine pousse la sortie de la compilation vers IBM Cloud Container Registry avec un accès automatique.
- Code Engine détermine automatiquement si votre source réside dans un référentiel ou sur un poste de travail en local, en fonction de la valeur de l'option
--source.
Exemple de sortie
Submitting build run 'helloworld-buildrun'... Creating image 'private.us.icr.io/ce--12ce3-defg4h5ij6d/buildrun-helloworld-buildrun'... Run 'ibmcloud ce buildrun get -n helloworld-buildrun' to check the build run status. OKLe tableau suivant récapitule les options utilisées avec la commande
buildrun submitdans cet exemple. Pour plus d'informations sur la commande et ses options, voir la commandeibmcloud ce buildrun submit.Description de la commande Option Description --nameNom de l'exécution de génération. Utilisez un nom unique dans le projet.
- Le nom doit commencer et se terminer par une lettre minuscule.
- Le nom doit contenir 63 caractères ou moins et peut contenir des caractères alphanumériques en minuscules et des traits d'union (-).
--sourceL'URL du référentiel Git ou le chemin d'accès à la source locale qui contient votre code source ; par exemple, https://github.com/IBM/CodeEngine.--context-dirRépertoire inclus dans le référentiel qui contient le fichier de packs de construction ou le fichier Dockerfile. Spécifiez cette valeur si votre fichier de packs de construction ou votre fichier Dockerfile se trouve dans un sous-répertoire. - Dans cet exemple, la commande utilise la stratégie
-
Utilisez la commande **
buildrun get**pour vérifier l'état de votre exécution de génération.ibmcloud ce buildrun get -n helloworld-buildrunExemple de sortie
Remarquez le nom généré pour l'image et que le nom du secret de registre créé automatiquement est du format
ce-auto-icr-private-<region>.Getting build 'helloworld-buildrun' For troubleshooting information visit: https://cloud.ibm.com/docs/codeengine?topic=codeengine-troubleshoot-build. Run 'ibmcloud ce buildrun events -n helloworld-buildrun' to get the system events of the build run. Run 'ibmcloud ce buildrun logs -f -n helloworld-buildrun' to follow the logs of the build run. OK Name: helloworld-buildrun ID: abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f Project Name: myproject Project ID: 01234567-abcd-abcd-abcd-abcdabcd1111 Age: 2d15h Created: 2022-06-07T15:30:46-04:00 Build Type: git Summary: Succeeded Status: Succeeded Reason: All Steps have completed executing Source: Commit Branch: main Commit SHA: 946dd18f6e5a5474336786bc28d7dda93aec49c1 Commit Author: COMMIT_AUTHOR Image Digest: sha256:ba3c445a27238040e102c083f76ad8922effcc3a7c4dc97b8472e626d87c11a2 Image: private.us.icr.io/ce--12ce3-defg4h5ij6d/buildrun-helloworld-buildrun Registry Secret: ce-auto-icr-private-us-south Build Strategy: dockerfile-medium Timeout: 10m0s Source: https://github.com/IBM/CodeEngine Commit: main Context Directory: /hello Dockerfile: Dockerfile
Exécution d'une génération unique avec l'interface de ligne de commande (avec la source du référentiel public et l'accès fourni par l'utilisateur au registre)
Dans ce scénario d'accès fourni par l'utilisateur , Code Engine génère une image à partir de votre source de référentiel Git public, puis télécharge l'image dans votre registre de conteneur avec l'accès au registre que vous fournissez avec une commande de génération unique.
Avant de commencer
- Configurez votre environnement d'interface de ligne de commande Code Engine.
- Créez et utilisez un projet.
- Créez un secret de registre pour pouvoir enregistrer votre image.
-
Exécutez un build pour construire une image à partir d'un repo Git public et spécifiez l'emplacement du registre d'images pour la sortie du build avec un secret de registre. Par exemple, la commande
buildrun submitsuivante exécute une exécution de génération appeléehelloworld-buildrun2qui effectue des générations à partir du Git Githttps://github.com/IBM/CodeEnginepublic et stocke l'image dans le registreus.icr.io/mynamespace/codeengine-helloworlden utilisant le secret de registremyregistrypour accéder à ce registre.ibmcloud ce buildrun submit --name helloworld-buildrun2 --image us.icr.io/mynamespace/codeengine-helloworld --registry-secret myregistry --source https://github.com/IBM/CodeEngine --context-dir /hello- Dans cet exemple, la commande utilise la stratégie
dockerfilepar défaut et la taille de générationmediumpar défaut. - Étant donné que le nom de branche du référentiel n'est pas spécifié avec l'option
--commit, Code Engine utilise automatiquement la branche par défaut du référentiel spécifié, qui estmainpour ce référentiel Git. - Si vous utilisez l'option
--strategyavec la valeur dedockerfile, assurez-vous que l'option--dockerfilesoit correctement définie sur le nom dedockerfile. La valeur par défaut de l'option--strategyestDockerfile. - Code Engine détermine automatiquement si votre source réside dans un référentiel ou sur un poste de travail en local, en fonction de la valeur de l'option
--source.
Exemple de sortie
Submitting build run 'helloworld-buildrun2'... Creating image 'us.icr.io/mynamespace/codeengine-helloworld'... Run 'ibmcloud ce buildrun get -n helloworld-buildrun2' to check the build run status. OKLe tableau suivant récapitule les options utilisées avec la commande
buildrun submitdans cet exemple. Pour plus d'informations sur la commande et ses options, voir la commandeibmcloud ce buildrun submit.Description de la commande Option Description --nameNom de l'exécution de génération. Utilisez un nom unique dans le projet. Cette valeur est requise.
- Le nom doit commencer et se terminer par une lettre minuscule.
- Le nom doit contenir 63 caractères ou moins et peut contenir des caractères alphanumériques en minuscules et des traits d'union (-).
--imageEmplacement du registre d'images. Le format de l'emplacement doit être REGISTRY/NAMESPACE/REPOSITORYouREGISTRY/NAMESPACE/REPOSITORY:TAG, oùTAGest facultatif. SiTAGn'est pas spécifié, la valeur par défaut estlatest.--registry-secretSecret de registre utilisé pour accéder au registre lors de la création de l'image du conteneur. Exécutez la commande ** secret create --format registry**pour créer un secret de registre. Le secret de registre est utilisé pour s'authentifier auprès d'un registre privé.--sourceL'URL du référentiel Git ou le chemin d'accès à la source locale qui contient votre code source ; par exemple, https://github.com/IBM/CodeEngine.--context-dirRépertoire inclus dans le référentiel qui contient le fichier de packs de construction ou le fichier Dockerfile. Spécifiez cette valeur si votre fichier de packs de construction ou votre fichier Dockerfile se trouve dans un sous-répertoire. - Dans cet exemple, la commande utilise la stratégie
-
Utilisez la commande **
buildrun get**pour vérifier l'état de votre exécution de génération.ibmcloud ce buildrun get --name helloworld-buildrun2Exemple de sortie
Getting build run 'helloworld-buildrun2'... For troubleshooting information visit: https://cloud.ibm.com/docs/codeengine?topic=codeengine-troubleshoot-build. Run 'C:\Program Files\IBM\Cloud\bin\ibmcloud.exe ce buildrun events -n helloworld-buildrun2' to get the system events of the build run. Run 'C:\Program Files\IBM\Cloud\bin\ibmcloud.exe ce buildrun logs -f -n helloworld-buildrun2' to follow the logs of the build run. OK Name: helloworld-buildrun2 ID: abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f Project Name: myproject Project ID: 01234567-abcd-abcd-abcd-abcdabcd1111 Age: 2d15h Created: 2022-06-07T15:57:43-04:00 Build Type: git Summary: Succeeded Status: Succeeded Reason: All Steps have completed executing Source: Commit Branch: main Commit SHA: 946dd18f6e5a5474336786bc28d7dda93aec49c1 Commit Author: COMMIT_AUTHOR Image Digest: sha256:6312ee613efa5bec7baa20c47f607e7f15473947d5675fd7384491bee8023afc Image: us.icr.io/mynamespace/codeengine-helloworld2 Registry Secret: myregistry Build Strategy: dockerfile-medium Timeout: 10m0s Source: https://github.com/IBM/CodeEngine Context Directory: /hello Dockerfile: Dockerfile
Si vous recevez un échec de validation de commande, vérifiez que votre secret existe. Si vous faites référence à un secret de registre (--registry-secret) pour votre image et que le secret n'existe pas, voir Accès aux registres de conteneur.
Pour plus d'informations sur les générations, voir Conseils relatifs au traitement des incidents liés aux générations.
Exécution d'une génération unique qui extrait la source du référentiel privé avec l'interface de ligne de commande
Si votre source se trouve dans un référentiel privé et que vous souhaitez utiliser une commande unique pour générer et sortir une image de conteneur, utilisez la commande**buildrun submit** pour créer l'image du conteneur sans créer
de configuration de génération réutilisable.
Pour la sortie de génération, vous pouvez choisir un accès automatique et laisser Code Engine prendre soin de construire l'image pour vous à partir de votre source et de stocker l'image dans IBM Cloud Container Registry. Dans ce cas, il n'est pas nécessaire de spécifier un secret de registre ou l'emplacement du registre d'images. Vous pouvez également choisir l'accès fourni par l'utilisateur et spécifier les détails du registre ainsi qu'un secret de registre pour accéder à votre image construite dans le registre.
Pour obtenir une liste complète des options d'exécution d'une génération unique, voir la commandeibmcloud ce buildrun submit.
Exécution d'une génération unique avec l'interface de ligne de commande (avec source de référentiel privé et accès automatique au registre)
Dans ce scénario d'accès automatique, Code Engine génère une image à partir de votre source de référentiel privé et télécharge l'image vers IBM Cloud Container Registry avec un accès automatique à l'aide des options de génération
à l'aide de la commande**buildrun submit**. Dans ce cas, il n'est pas nécessaire de spécifier un secret de registre ou l'emplacement du registre de l'image.
Voir Configuration des droits pour les registres d'images pour plus d'informations sur la définition des droits requis pour Code Engine pour accéder automatiquement à ces images dans Container Registry.
Avant de commencer
- Configurez votre environnement d'interface de ligne de commande Code Engine.
- Créez et utilisez un projet.
- Créer un secret de référentiel Git pour accéder à votre source.
-
Exécutez une génération pour générer une image à partir d'un référentiel privé et laissez Code Engine stocker automatiquement et accéder à l'image. Par exemple, la commande suivante**
buildrun submit** exécute une exécution de génération qui s'appelle ethelloworld-buildrun-privatequi génère à partir du référentiel privé Githttps://github.com/myprivaterepo/builds.ibmcloud ce buildrun submit --name helloworld-buildrun-private --source git@github.com:myprivaterepo/builds.git --context-dir /hello --strategy buildpacks --git-repo-secret myrepossh- Cet exemple de commande utilise la stratégie
buildpackset la taille de générationmedium. - En ne spécifiant pas l'emplacement du registre d'images ou un secret de registre, Code Engine pousse la sortie de la compilation vers IBM Cloud Container Registry avec un accès automatique.
- Comme la source dans le dépôt Git spécifié est privée, l'accès nécessite un secret SSH. Un secret SSH est également utilisé en tant que secret d'accès au référentiel Git. Le paramètre
--sourceque vous avez spécifié doit donc utiliser le protocole SSH, comme dans l'exemlegit@github.com:myprivaterepo/builds.git. La valeur de--sourcene doit pas être au formathttpouhttps. - Étant donné que le nom de branche du référentiel n'est pas spécifié avec l'option
--commit, Code Engine utilise automatiquement la branche par défaut du référentiel spécifié. - Code Engine détermine automatiquement si votre source réside dans un référentiel ou sur un poste de travail en local, en fonction de la valeur de l'option
--source.
Le tableau suivant récapitule les options utilisées avec la commande
buildrun submitdans cet exemple. Pour plus d'informations sur la commande et ses options, voir la commandeibmcloud ce buildrun submit.Description de la commande Option Description --nameNom de l'exécution de génération. Utilisez un nom unique dans le projet. Cette valeur est requise.
- Le nom doit commencer et se terminer par une lettre minuscule.
- Le nom doit contenir 63 caractères ou moins et peut contenir des caractères alphanumériques en minuscules et des traits d'union (-).
--sourceL'URL du référentiel Git ou le chemin d'accès à la source locale qui contient votre code source ; par exemple, git@github.com:myprivaterepo/builds.git.--context-dirRépertoire inclus dans le référentiel qui contient le fichier de packs de construction ou le fichier Dockerfile. Spécifiez cette valeur si votre fichier de packs de construction ou votre fichier Dockerfile se trouve dans un sous-répertoire. --strategyStratégie à utiliser pour générer l'image. Les valeurs valides sont dockerfileetbuildpacks.--git-repo-secretNom du secret SSH, qui contient les identifiants permettant d'accéder au référentiel privé contenant le code source pour la génération de votre image de conteneur. Exécutez la commande secret create --sshpour créer ce secret. Un secret SSH est également utilisé en tant que secret d'accès au référentiel Git. - Cet exemple de commande utilise la stratégie
-
Utilisez la commande **
buildrun get**pour vérifier l'état de votre exécution de génération.ibmcloud ce buildrun get --name helloworld-buildrun-privateExemple de sortie
Getting build run 'helloworld-buildrun-private'... For troubleshooting information visit: https://cloud.ibm.com/docs/codeengine?topic=codeengine-troubleshoot-build. Run 'ibmcloud ce buildrun events -n helloworld-buildrun-private' to get the system events of the build run. Run 'ibmcloud ce buildrun logs -f -n helloworld-buildrun-private' to follow the logs of the build run. OK Name: helloworld-buildrun-private ID: abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f Project Name: myproject Project ID: 01234567-abcd-abcd-abcd-abcdabcd1111 Age: 2d15h Created: 2022-06-08T06:02:36-05:00 Build Type: git Summary: Succeeded Status: Succeeded Reason: All Steps have completed executing Source: Commit Branch: main Commit SHA: 946dd18f6e5a5474336786bc28d7dda93aec49c1 Commit Author: COMMIT_AUTHOR Image Digest: sha256:39c4a87bc43102c2ee88562072c57c135b8dcc5cc4a1104e1d782fe3acc5d5b6 Image: private.us.icr.io/ce--e97a8-odof2whblw5/build-helloworld-buildrun-private Registry Secret: ce-auto-icr-private-us-south Build Strategy: buildpacks-v3-medium Timeout: 10m0s Source: git@github.com:myprivaterepo/builds.git Context Directory: /hello Repo Secret: myrepossh
Exécution d'une génération unique avec l'interface de ligne de commande (avec la source de référentiel privé et l'accès fourni par l'utilisateur au registre)
Dans ce scénario d'accès fourni par l'utilisateur, Code Engine génère une image à partir de votre source de référentiel privé avec un secret de référentiel Git que vous fournissez, puis télécharge l'image dans votre registre de conteneur avec l'accès au registre que vous fournissez avec une commande de génération unique.
Avant de commencer
- Configurez votre environnement d'interface de ligne de commande Code Engine.
- Créez et utilisez un projet.
- Créez un secret SSH pour accéder à votre source.
- Créez un secret de registre pour pouvoir enregistrer votre image.
-
Lancer une compilation pour construire une image à partir d'un dépôt privé et spécifier l'emplacement du registre d'images pour la sortie de la compilation avec un secret de registre. L'exemple de commande
buildrun submitsuivant exécute une exécution de génération appeléehelloworld-buildrun-private2qui effectue des générations à partir du Githttps://github.com/myprivaterepo/buildsprivé et stocke l'image dansus.icr.io/mynamespace/codeengine-helloworlden utilisant le secret de registremyregistrypour accéder à ce registre.ibmcloud ce buildrun submit --name helloworld-buildrun-private2 --image us.icr.io/mynamespace/codeengine-helloworld --registry-secret myregistry --source git@github.com:myprivaterepo/builds.git --context-dir /hello --strategy buildpacks --git-repo-secret myrepossh- Cet exemple de commande utilise la stratégie
buildpackset la taille de générationmediumpar défaut. - Le dépôt Git fourni étant privé, l'accès nécessite un secret SSH. Un secret SSH est également utilisé en tant que secret d'accès au référentiel Git. Le paramètre
--sourceque vous avez spécifié doit donc utiliser le protocole SSH, comme dans l'exemlegit@github.com:myprivaterepo/builds.git. La valeur de--sourcene doit pas être au formathttpouhttps. - Étant donné que le nom de branche du référentiel n'est pas spécifié avec l'option
--commit, Code Engine utilise automatiquement la branche par défaut du référentiel spécifié. - Code Engine détermine automatiquement si votre source réside dans un référentiel ou sur un poste de travail en local, en fonction de la valeur de l'option
--source.
Le tableau suivant récapitule les options utilisées avec la commande
buildrun submitdans cet exemple. Pour plus d'informations sur la commande et ses options, voir la commandeibmcloud ce buildrun submit.Description de la commande Option Description --nameNom de l'exécution de génération. Utilisez un nom unique dans le projet. Cette valeur est requise.
- Le nom doit commencer et se terminer par une lettre minuscule.
- Le nom doit contenir 63 caractères ou moins et peut contenir des caractères alphanumériques en minuscules et des traits d'union (-).
--imageEmplacement du registre d'images. Le format de l'emplacement doit être REGISTRY/NAMESPACE/REPOSITORYouREGISTRY/NAMESPACE/REPOSITORY:TAG, oùTAGest facultatif. SiTAGn'est pas spécifié, la valeur par défaut estlatest.--registry-secretSecret de registre utilisé pour accéder au registre lors de la création de l'image du conteneur. Exécutez la commande ** secret create --format registry**pour créer un secret de registre. Le secret de registre est utilisé pour s'authentifier auprès d'un registre privé.--sourceL'URL du référentiel Git ou le chemin d'accès à la source locale qui contient votre code source ; par exemple, git@github.com:myprivaterepo/builds.git.--context-dirRépertoire inclus dans le référentiel qui contient le fichier de packs de construction ou le fichier Dockerfile. Spécifiez cette valeur si votre fichier de packs de construction ou votre fichier Dockerfile se trouve dans un sous-répertoire. --strategyStratégie à utiliser pour générer l'image. Les valeurs valides sont dockerfileetbuildpacks.--git-repo-secretNom du secret SSH, qui contient les identifiants permettant d'accéder au référentiel privé contenant le code source pour la génération de votre image de conteneur. Exécutez la commande secret create --sshpour créer ce secret. Un secret SSH est également utilisé en tant que secret d'accès au référentiel Git. - Cet exemple de commande utilise la stratégie
-
Utilisez la commande **
buildrun get**pour vérifier l'état de votre exécution de génération.ibmcloud ce buildrun get --name helloworld-buildrun-private2Exemple de sortie
Getting build run 'helloworld-buildrun-private2'... For troubleshooting information visit: https://cloud.ibm.com/docs/codeengine?topic=codeengine-troubleshoot-build. Run 'ibmcloud ce buildrun events -n helloworld-buildrun-private2' to get the system events of the build run. Run 'ibmcloud ce buildrun logs -f -n helloworld-buildrun-private2' to follow the logs of the build run. OK Name: helloworld-buildrun-private2 ID: abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f Project Name: myproject Project ID: 01234567-abcd-abcd-abcd-abcdabcd1111 Age: 2d10h Created: 2022-06-08T06:11:05-05:00 Build Type: git Summary: Succeeded Status: Succeeded Reason: All Steps have completed executing Source: Commit Branch: main Commit SHA: 946dd18f6e5a5474336786bc28d7dda93aec49c1 Commit Author: COMMIT_AUTHOR Image Digest: sha256:39c4a87bc43102c2ee88562072c57c135b8dcc5cc4a1104e1d782fe3acc5d5b6 Image: us.icr.io/mynamespace/codeengine-helloworld Registry Secret: myregistry Build Strategy: buildpacks-v3-medium Timeout: 10m0s Source: git@github.com:myprivaterepo/builds.git Context Directory: /hello Repo Secret: myrepossh
Exécution d'une génération unique qui extrait la source à partir d'un répertoire local
Si votre source se trouve sur votre poste de travail en local et que vous souhaitez utiliser une commande unique pour générer et générer une image de conteneur, utilisez la commande**buildrun submit** pour créer l'image du conteneur
sans créer de configuration de génération réutilisable.
Pour la sortie de génération, vous pouvez choisir un accès automatique et laisser Code Engine prendre soin de construire l'image pour vous à partir de votre source et de stocker l'image dans IBM Cloud Container Registry. Dans ce cas, il n'est pas nécessaire de spécifier un secret de registre ou l'emplacement du registre d'images. Vous pouvez également choisir l'accès fourni par l'utilisateur et spécifier les détails du registre ainsi qu'un secret de registre pour accéder à votre image construite dans le registre.
Lorsque vous soumettez une génération qui extrait du code à partir d'un répertoire local, votre code source est compressé dans un fichier archive et téléchargé sur votre instance IBM Cloud Container Registry. 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.
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, consultez le dépôt .gitignore deGitHub.
Pour obtenir une liste complète des options d'exécution d'une génération unique, voir la commandeibmcloud ce buildrun submit.
Exécution d'une génération unique avec l'interface de ligne de commande (avec la source locale et l'accès automatique au registre)
Dans ce scénario d'accès automatique, Code Engine génère une image à partir de votre source locale et télécharge automatiquement l'image sur IBM Cloud Container Registry avec un accès automatique à l'aide des options de génération
à l'aide de la commande**buildrun submit**.
Voir Configuration des droits pour les registres d'images pour plus d'informations sur la définition des droits requis pour Code Engine pour accéder automatiquement à ces images dans Container Registry. Dans ce cas, il n'est pas nécessaire de spécifier un secret de registre ou l'emplacement du registre de l'image.
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, exécutez une génération pour générer une image à partir de la sourcehelloworldsur votre poste de travail en local et laissez Code Engine stocker automatiquement et accéder à l'image. 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. Par exemple, la commande **buildrun submit**suivante exécute une exécution de génération appeléebuildrun-local-dockerfilequi s'appuie sur la source locale.ibmcloud ce buildrun submit --name buildrun-local-dockerfile --source ..indique que la source de génération se trouve dans le répertoire de travail en cours.- Cet exemple de commande utilise la stratégie
dockerfilepar défaut et la taille de générationmediumpar défaut. - En ne spécifiant pas l'emplacement du registre d'images ou un secret de registre, Code Engine pousse la sortie de la compilation vers IBM Cloud Container Registry avec un accès automatique.
- Code Engine détermine automatiquement si votre source réside dans un référentiel ou sur un poste de travail en local, en fonction de la valeur de l'option
--source.
Exemple de sortie
Packaging files to upload from source path '.'... Submitting build run 'buildrun-local-dockerfile'... Creating image 'private.us.icr.io/ce--27fe9-glxo4k7nj7d/buildrun-buildrun-local-dockerfile'... Run 'ibmcloud ce buildrun get -n buildrun-local-dockerfile' to check the build run status. OKLe tableau suivant récapitule les options utilisées avec la commande
buildrun submitdans cet exemple. Pour plus d'informations sur la commande et ses options, voir la commandeibmcloud ce buildrun submit.Description de la commande Option Description --nameNom de l'exécution de génération. Utilisez un nom unique dans le projet. Cette valeur est requise.
- Le nom doit commencer et se terminer par une lettre minuscule.
- Le nom doit contenir 63 caractères ou moins et peut contenir des caractères alphanumériques en minuscules et des traits d'union (-).
--sourceLe chemin d'accès à la source locale qui contient votre code source ou l'URL du référentiel Git ; par exemple, .. - Cet exemple de commande utilise la stratégie
-
Utilisez la commande **
buildrun get**pour vérifier l'état de votre exécution de génération.ibmcloud ce buildrun get --name buildrun-local-dockerfileExemple de sortie
Getting build run 'buildrun-local-dockerfile'... For troubleshooting information visit: https://cloud.ibm.com/docs/codeengine?topic=codeengine-troubleshoot-build. Run 'C:\Program Files\IBM\Cloud\bin\ibmcloud.exe ce buildrun events -n buildrun-local-dockerfile' to get the system events of the build run. Run 'C:\Program Files\IBM\Cloud\bin\ibmcloud.exe ce buildrun logs -f -n buildrun-local-dockerfile' to follow the logs of the build run. OK Name: buildrun-local-dockerfile ID: abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f Project Name: myproject Project ID: 01234567-abcd-abcd-abcd-abcdabcd1111 Age: 2d15h Created: 2022-06-07T16:09:34-04:00 Build Type: local Summary: Succeeded Status: Succeeded Reason: All Steps have completed executing Source: Source Image Digest: sha256:ced7abc34f018941145efb56e9a0c1fca99236653c2a05dd5b8b985928ff5f4f Image Digest: sha256:6459430ff49436494aa5e3103eaac98ad90ea50df88a2e14af6314fe88f3c952 Image: private.us.icr.io/ce--27fe9-glxo4k7nj7d/buildrun-buildrun-local-dockerfile Registry Secret: ce-auto-icr-private-us-south Build Strategy: dockerfile-medium Timeout: 10m0s Source Image: private.us.icr.io/ce--27fe9-glxo4k7nj7d/buildrun-buildrun-local-dockerfile-source Source Registry Secret: ce-auto-icr-private-us-south Dockerfile: DockerfileRemarquez le nom généré pour l'image et que le nom du secret de registre créé automatiquement est du format
ce-auto-icr-private-<region>.
Exécution d'une génération unique avec l'interface de ligne de commande (avec la source locale et l'accès fourni par l'utilisateur au registre)
Dans ce scénario d'accès fourni par l'utilisateur, Code Engine génère une image à partir de votre source locale, puis télécharge l'image dans votre registre de conteneur avec l'accès au registre que vous fournissez à l'aide de la
commande**buildrun submit**.
Avant de commencer
- Configurez votre environnement d'interface de ligne de commande Code Engine.
- Créez et utilisez un projet.
- Créez un secret de registre pour pouvoir enregistrer votre image.
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. -
À partir du répertoire
CodeEngine\helloworld, lancez une exécution de construction pour construire une image à partir de la sourcehelloworldsur votre station de travail locale et spécifiez l'emplacement du registre d'images pour la sortie de la construction avec un secret de registre. Cette commande**buildrun submit** génère et insère automatiquement l'image dans le registre que vous spécifiez avec l'option--image. Indiquez l'option--registry-secretpour accéder à votre registre.ibmcloud ce buildrun submit --name buildrun-local-dockerfile2 --source . --image us.icr.io/mynamespace/codeengine-helloworld --registry-secret myregistry.indique que la source de génération se trouve dans le répertoire de travail en cours.- Code Engine détermine automatiquement si votre source réside dans un référentiel ou sur un poste de travail en local, en fonction de la valeur de l'option
--source. - Dans cet exemple, la commande utilise la stratégie
dockerfilepar défaut et la taille de générationmediumpar défaut.
Le tableau suivant récapitule les options utilisées avec la commande
buildrun submitdans cet exemple. Pour plus d'informations sur la commande et ses options, voir la commandeibmcloud ce buildrun submit.Description de la commande Option Description --nameNom de l'exécution de génération. Utilisez un nom unique dans le projet. Cette valeur est requise.
- Le nom doit commencer et se terminer par une lettre minuscule.
- Le nom doit contenir 63 caractères ou moins et peut contenir des caractères alphanumériques en minuscules et des traits d'union (-).
--sourceLe chemin d'accès à la source locale qui contient votre code source ou l'URL du référentiel Git ; par exemple, ..--imageEmplacement du registre d'images. Le format de l'emplacement doit être REGISTRY/NAMESPACE/REPOSITORYouREGISTRY/NAMESPACE/REPOSITORY:TAG, oùTAGest facultatif. SiTAGn'est pas spécifié, la valeur par défaut estlatest.--registry-secretSecret de registre utilisé pour accéder au registre lors de la création de l'image du conteneur. Exécutez la commande ** secret create --format registry**pour créer un secret de registre. Le secret de registre est utilisé pour s'authentifier auprès d'un registre privé. - Code Engine détermine automatiquement si votre source réside dans un référentiel ou sur un poste de travail en local, en fonction de la valeur de l'option
-
Utilisez la commande **
buildrun get**pour vérifier l'état de votre exécution de génération.ibmcloud ce buildrun get --name buildrun-local-dockerfile2Exemple de sortie
Getting build run 'buildrun-local-dockerfile2'... For troubleshooting information visit: https://cloud.ibm.com/docs/codeengine?topic=codeengine-troubleshoot-build. Run 'C:\Program Files\IBM\Cloud\bin\ibmcloud.exe ce buildrun events -n buildrun-local-dockerfile2' to get the system events of the build run. Run 'C:\Program Files\IBM\Cloud\bin\ibmcloud.exe ce buildrun logs -f -n buildrun-local-dockerfile2' to follow the logs of the build run. OK Name: buildrun-local-dockerfile2 ID: abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f Project Name: myproject Project ID: 01234567-abcd-abcd-abcd-abcdabcd1111 Age: 2d15h Created: 2022-06-07T16:34:42-04:00 Build Type: local Summary: Succeeded Status: Succeeded Reason: All Steps have completed executing Source: Source Image Digest: sha256:00fb80a8cdc17394ccae564efceb81f48c2cbcbd76afd0fb0b74019352933a63 Image Digest: sha256:25bc4bedccc1b34c98ccd92368246df3e61a7cf0cf4915a32f111669b60e2fea Image: us.icr.io/mynamespace/codeengine-helloworld Registry Secret: myregistry Build Strategy: dockerfile-medium Timeout: 10m0s Source Image: us.icr.io/mynamespace/codeengine-helloworld-source Source Registry Secret: myregistry Dockerfile: Dockerfile
Etapes suivantes pour les générations
Maintenant que vous avez construit une image de conteneur à partir de votre source, vous pouvez maintenant créer une application ou un travail qui utilise votre image de conteneur. Voir Déploiement d'applications et Exécution de travaux.
Vous recherchez d'autres exemples de code ? Consultez les exemples pour IBM Cloud Code Engine GitHub.