Créez une configuration de génération qui extrait la source du référentiel public
Si votre source se trouve dans un référentiel public, créez une configuration de génération avec des paramètres qui incluent des informations sur l'emplacement de l'extraction à partir d'un référentiel public. Pour le résultat de la construction, vous pouvez choisir de spécifier les détails du registre ainsi qu'un secret de registre pour accéder à votre image construite dans le registre. 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. Dans ce cas, il n'est pas nécessaire de spécifier un secret de registre ou l'emplacement du registre d'images.
La création d'une configuration de génération ne crée pas d'image mais crée la configuration pour générer une image. Vous devez alors exécuter une génération qui fait référence à la configuration de génération pour créer une image. La configuration de génération n'est pas validée ou utilisée pour créer une image tant que la génération n'est pas exécutée. La configuration de génération permet plusieurs générations ultérieures d'une image, par exemple lorsque des modifications sont appliquées au référentiel source.
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.
Création d'une configuration de génération à partir de la console (référentiel public)
-
Accédez au tableau de bord Code Engine.
-
Sélectionnez le projet dans lequel vous avez ajouté votre registre de conteneur.
-
Sur la page du projet, cliquez sur Générations d'image.
-
Dans l'onglet Génération d'image, cliquez sur Créer. Le panneau latéral Spécifier les détails de génération s'ouvre pour vous permettre d'entrer les détails de votre génération.
-
Dans la section Source, entrez un nom pour votre génération, l'URL de votre référentiel source et votre accès au référentiel de code.
- Si votre code se trouve dans un répertoire public, utilisez une URL HTTPS et sélectionnez Aucun pour l'accès au répertoire de code. Exemple d'URL HTTPS :
https://github.com/IBM/CodeEngine. - Si votre code se trouve dans un référentiel privé, utilisez une URL SSH pour le référentiel de code et sélectionnez le nom d'un accès au référentiel de code existant ou créez un accès au référentiel de code.
Exemple d'URL SSH :
git@github.com:IBM/CodeEngine.git. - Le cas échéant, sélectionnez un nom de branche source. 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é. Vous pouvez entrer n'importe quel autre nom de branche, balise ou ID de validation.
Cliquez sur Next pour continuer.
- Si votre code se trouve dans un répertoire public, utilisez une URL HTTPS et sélectionnez Aucun pour l'accès au répertoire de code. Exemple d'URL HTTPS :
-
Dans la section Stratégie, sélectionnez la stratégie que vous souhaitez utiliser.
- Si vous sélectionnez Fichier Dockerfile, vous pouvez également spécifier un chemin d'accès alternatif pour votre fichier Dockerfile.
- Sélectionnez la taille de votre génération sous Ressources de génération.
Cliquez sur Next pour continuer.
-
Dans la section Sortie, entrez les détails de l'image de votre conteneur.
- Sélectionnez un secret de registre existant ou cliquez sur Créer un secret de registre pour en ajouter un nouveau.
- Si vous créez votre image pour une instance Container Registry qui se trouve dans votre compte, vous pouvez sélectionner
Code Engine managed secretet Code Engine créera et gérera le secret pour vous. - Sélectionnez ensuite l'espace de nom, le référentiel et la balise de l'image que vous souhaitez générer. Vous pouvez choisir Code Engine pour créer et gérer l'espace de noms dans Container Registry pour vous.
- Si votre image existe dans Container Registry, vous pouvez sélectionner à partir des images existantes ou entrer un nouveau référentiel ou une nouvelle étiquette.
-
Cliquez sur Terminé pour terminer la création de la génération.
Après avoir créé la configuration de génération, vous devez exécuter la génération pour créer le fichier image. Une fois votre fichier image créé, vous pouvez déployer une application ou exécuter un travail avec votre fichier image nouvellement généré.
Création d'une configuration de génération avec l'interface de ligne de commande (référentiel public )
Pour créer une configuration de génération à l'aide de l'interface de ligne de commande, utilisez la commande build create. Pour obtenir la liste complète des options, voir la commande ibmcloud ce build create.
Avec la commande**build create**, vous pouvez choisir de laisser Code Engine prendre soin de construire l'image à partir de votre source pour vous, puis de stocker l'image dans IBM Cloud Container Registry. Dans ce cas d'accès automatique,
il n'est pas nécessaire de spécifier un secret de registre ou l'emplacement du registre d'images. Vous pouvez également spécifier l'emplacement de votre image de compilation et fournir un secret de registre afin que Code Engine puisse accéder
au résultat de la compilation et l'envoyer à votre registre.
Création d'une configuration de génération avec l'interface de ligne de commande (avec source de référentiel public et accès automatique au registre)
Dans ce scénario, Code Engine génère une image à partir de votre source de référentiel Git publique et télécharge automatiquement l'image sur IBM Cloud Container Registry avec un accès automatique. 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éez une configuration de 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 **
build create**suivante crée une configuration de génération appeléehelloworld-buildqui se construit à partir de la source dans le fichier public du référentiel Githttps://github.com/IBM/CodeEngine. Dans cet exemple, la commande utilise la stratégiedockerfilepar 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.ibmcloud ce build create --name helloworld-build --source https://github.com/IBM/CodeEngine --context-dir /helloExemple de sortie
Creating build helloworld-build... OKLe tableau suivant récapitule les options utilisées avec la commande
build createdans cet exemple. Pour plus d'informations sur la commande et ses options, voir la commandeibmcloud ce build create.Description de la commande Option Description --nameNom de la génération. 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 comporter 55 caractères ou moins et peut contenir des lettres, des nombres et des traits d'union (-).--sourceL'URL du référentiel Git 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. Cette valeur est facultative. -
Utilisez la commande
build getpour vérifier l'état de votre génération.ibmcloud ce build get --name helloworld-buildExemple 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-build' OK Name: helloworld-build ID: abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f Project Name: myproject Project ID: 01234567-abcd-abcd-abcd-abcdabcd1111 Age: 2d15h Created: 2022-05-24T09:58:43-05:00 Build Type: git Status: Succeeded Reason: all validations succeeded Image: private.us.icr.io/ce--e97a8-odof2whblw5/build-helloworld-build 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
Après avoir créé la configuration de génération, vous devez exécuter la génération pour créer le fichier image. Une fois votre fichier image créé, vous pouvez déployer une application ou exécuter un travail avec votre fichier image nouvellement généré.
Création d'une configuration de génération à l'aide de l'interface de ligne de commande (avec la source public du référentiel et l'accès fourni par l'utilisateur au registre)
Dans ce scénario, Code Engine génère une image à partir de votre source de référentiel Git publique, puis télécharge l'image dans votre registre de conteneur avec l'accès au registre que vous fournissez.
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.
-
Créer une configuration de construction pour construire une image à partir d'un repo Git public et spécifier l'emplacement du registre d'images pour la sortie de la construction avec un secret de registre. Avec la commande**
build create**, spécifiez l'option--imagepour indiquer l'emplacement du registre d'images et spécifiez l'option--registry-secretpour accéder au registre. Par exemple, la commande suivante crée une configuration de génération appeléehelloworld-build2qui est générée à partir du Git publichttps://github.com/IBM/CodeEngineet stocke l'image dansus.icr.io/mynamespace/codeengine-helloworldà l'aide du secret de registremyregistry. Dans cet exemple, la commande utilise la stratégiedockerfilepar 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.ibmcloud ce build create --name helloworld-build2 --image us.icr.io/mynamespace/codeengine-helloworld --registry-secret myregistry --source https://github.com/IBM/CodeEngine --context-dir /helloExemple de sortie
Creating build helloworld-build2... OKLe tableau suivant récapitule les options utilisées avec la commande
build createdans cet exemple. Pour plus d'informations sur la commande et ses options, voir la commandeibmcloud ce build create.Description de la commande Option Description --nameNom de la génération. 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 comporter 55 caractères ou moins et peut contenir des lettres, des nombres 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-secretLe secret du registre qui est utilisé pour accéder au registre. Vous pouvez ajouter le secret de registre en exécutant la commande secret create --format registry. Le secret de registre est utilisé pour s'authentifier auprès d'un registre privé.--sourceL'URL du référentiel Git 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. Cette valeur est facultative. -
Utilisez la commande
build getpour vérifier l'état de votre génération.ibmcloud ce build get --name helloworld-build2Exemple de sortie
Getting build 'helloworld-build2' OK Name: helloworld-build2 ID: abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f Project Name: myproject Project ID: 01234567-abcd-abcd-abcd-abcdabcd1111 Age: 2d15h Created: 2021-03-14T14:48:19-05:00 Status: Succeeded Reason: all validations succeeded Image: us.icr.io/mynamespace/codeengine-helloworld Registry Secret: myregistry Build Strategy: dockerfile-medium Timeout: 10m0s Source: https://github.com/IBM/CodeEngine Commit: main Context Directory: /hello Dockerfile: Dockerfile
Après avoir créé la configuration de génération, vous devez exécuter la génération pour créer le fichier image. Une fois votre fichier image créé, vous pouvez déployer une application ou exécuter un travail avec votre fichier image nouvellement généré.
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 des conteneurs.
Pour plus d'informations sur les générations, voir Conseils relatifs au traitement des incidents liés aux générations.