Créer une configuration de génération qui extrait la source du référentiel privé

Si votre source se trouve dans un référentiel privé, créez une configuration de génération avec des paramètres qui incluent des informations sur l'emplacement d'extraction de la source à partir d'un référentiel privé. Pour la sortie de génération, vous pouvez choisir de spécifier les détails du registre avec un secret de registre pour accéder à votre image générée 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, vous n'avez pas besoin 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 fichier à ignorer, voir le référentielGitHub.gitignore.

Création d'une configuration de génération à partir de la console (référentiel privé)

  1. Accédez au tableau de bord Code Engine.

  2. Sélectionnez le projet dans lequel vous avez ajouté votre registre de conteneur.

  3. Sur la page du projet, cliquez sur Générations d'image.

  4. 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.

  5. 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éférentiel privé, utilisez une URL SSH pour l'URL du référentiel de code et sélectionnez le nom d'un secret SSH existant ou créez un secret SSH. 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.

  6. 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 Suivant pour passer à la dernière section.

  7. 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 générez votre image dans une instance Container Registry qui se trouve dans votre compte, vous pouvez sélectionner Code Engine managed secret et Code Engine crée et gère 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 nom 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.
  8. 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 privé)

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 et de stocker l'image dans IBM Cloud Container Registry. Pour ce cas d' accès automatique, vous n'avez pas besoin de spécifier un secret de registre ou l'emplacement du registre d'images. Vous pouvez également spécifier l'emplacement de votre sortie d'image de génération et fournir un secret de registre pour que Code Engine puisse accéder au résultat de génération 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 privée 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 privé et télécharge automatiquement l'image sur IBM Cloud Container Registry. 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

Créez une configuration de 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 build create crée une configuration de génération qui s'appelle helloworld-build-private qui construit à partir du référentiel privé Githttps://github.com/myprivaterepo/builds, et utilise la stratégie buildpacks et la taille de génération medium. Code Engine télécharge automatiquement l'image vers IBM Cloud Container Registry. De plus, comme 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 estmain pour ce référentiel Git. Si vous ne spécifiez pas l'emplacement du registre d'images ou d'un secret de registre, Code Engine envoie la sortie de génération à IBM Cloud Container Registry avec un accès automatique.

Le référentiel Git fourni étant privé, un secret de référentiel Git est requis pour y accéder. Le paramètre --source que vous avez spécifié doit donc utiliser le protocole SSH, comme dans l'exemle git@github.com:myprivaterepo/builds.git. La valeur de --source ne doit pas être au format http ou https.

ibmcloud ce build create --name helloworld-build-private --source git@github.com:myprivaterepo/builds.git --context-dir /hello --strategy buildpacks --git-repo-secret myrepo

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 de référentiel privé 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 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.

Avant de commencer

Créez une configuration de génération pour générer une image à partir d'un référentiel privé et spécifiez l'emplacement du registre d'images pour la sortie de génération avec un secret de registre. Avec la commande**build create**, spécifiez l'option--image pour 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ée helloworld-build-private qui effectue des générations à partir du Git privé https://github.com/myprivaterepo/builds, utilise la stratégie buildpacks et la taille de génération medium et stocke l'image dans us.icr.io/mynamespace/codeengine-helloworld à l'aide du secret de registre défini dans myregistry.

Le référentiel Git fourni étant privé, un secret de référentiel Git est requis pour y accéder. Le paramètre --source que vous avez spécifié doit donc utiliser le protocole SSH, comme dans l'exemle git@github.com:myprivaterepo/builds.git. La valeur de --source ne doit pas être au format http ou https.

Dans cet exemple, la commande utilise 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 --commit , Code Engine utilise automatiquement la branche par défaut du référentiel spécifié.

ibmcloud ce build create --name helloworld-build-private --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 myrepo

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é.