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 list pour 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

  1. 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-buildrun qui 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érationmedium par 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 estmain pour 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.
    OK
    

    Le tableau suivant récapitule les options utilisées avec la commande buildrun submit dans cet exemple. Pour plus d'informations sur la commande et ses options, voir la commande ibmcloud ce buildrun submit.

    Description de la commande
    Option Description
    --name

    Nom 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 (-).
    --source L'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-dir Ré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.
  2. Utilisez la commande **buildrun get**pour vérifier l'état de votre exécution de génération.

    ibmcloud ce buildrun get -n helloworld-buildrun
    

    Exemple 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

  1. 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 submit suivante exécute une exécution de génération appelée helloworld-buildrun2 qui effectue des générations à partir du Git Git https://github.com/IBM/CodeEngine public et stocke l'image dans le registre us.icr.io/mynamespace/codeengine-helloworld en utilisant le secret de registre myregistry pour 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érationmedium par 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 estmain pour ce référentiel Git.
    • Si vous utilisez l'option --strategy avec la valeur de dockerfile, assurez-vous que l'option --dockerfile soit correctement définie sur le nom de dockerfile. La valeur par défaut de l'option --strategy est Dockerfile.
    • 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.
    OK
    

    Le tableau suivant récapitule les options utilisées avec la commande buildrun submit dans cet exemple. Pour plus d'informations sur la commande et ses options, voir la commande ibmcloud ce buildrun submit.

    Description de la commande
    Option Description
    --name

    Nom 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 (-).
    --image Emplacement du registre d'images. Le format de l'emplacement doit être REGISTRY/NAMESPACE/REPOSITORY ou REGISTRY/NAMESPACE/REPOSITORY:TAG , où TAG est facultatif. Si TAG n'est pas spécifié, la valeur par défaut est latest.
    --registry-secret Secret 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é.
    --source L'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-dir Ré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.
  2. Utilisez la commande **buildrun get**pour vérifier l'état de votre exécution de génération.

    ibmcloud ce buildrun get --name helloworld-buildrun2
    

    Exemple 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

  1. 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 et helloworld-buildrun-private qui 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égiebuildpacks et 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 --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.
    • É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 submit dans cet exemple. Pour plus d'informations sur la commande et ses options, voir la commande ibmcloud ce buildrun submit.

    Description de la commande
    Option Description
    --name

    Nom 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 (-).
    --source L'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-dir Ré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.
    --strategy Stratégie à utiliser pour générer l'image. Les valeurs valides sont dockerfile et buildpacks.
    --git-repo-secret Nom 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 --ssh pour créer ce secret. Un secret SSH est également utilisé en tant que secret d'accès au référentiel Git.
  2. 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-private
    

    Exemple 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

  1. 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 submit suivant exécute une exécution de génération appelée helloworld-buildrun-private2 qui effectue des générations à partir du Git https://github.com/myprivaterepo/builds privé et stocke l'image dans us.icr.io/mynamespace/codeengine-helloworld en utilisant le secret de registre myregistry pour 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ération mediumpar 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 --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.
    • É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 submit dans cet exemple. Pour plus d'informations sur la commande et ses options, voir la commande ibmcloud ce buildrun submit.

    Description de la commande
    Option Description
    --name

    Nom 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 (-).
    --image Emplacement du registre d'images. Le format de l'emplacement doit être REGISTRY/NAMESPACE/REPOSITORY ou REGISTRY/NAMESPACE/REPOSITORY:TAG , où TAG est facultatif. Si TAG n'est pas spécifié, la valeur par défaut est latest.
    --registry-secret Secret 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é.
    --source L'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-dir Ré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.
    --strategy Stratégie à utiliser pour générer l'image. Les valeurs valides sont dockerfile et buildpacks.
    --git-repo-secret Nom 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 --ssh pour créer ce secret. Un secret SSH est également utilisé en tant que secret d'accès au référentiel Git.
  2. 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-private2
    

    Exemple 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

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.

  1. 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
    
  2. Passez dans le répertoire CodeEngine\helloworld.

  3. A partir du répertoireCodeEngine\helloworld, exécutez une génération pour générer une image à partir de la source helloworldsur 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-dockerfile qui 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érationmedium par 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.
    OK
    

    Le tableau suivant récapitule les options utilisées avec la commande buildrun submit dans cet exemple. Pour plus d'informations sur la commande et ses options, voir la commande ibmcloud ce buildrun submit.

    Description de la commande
    Option Description
    --name

    Nom 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 (-).
    --source Le chemin d'accès à la source locale qui contient votre code source ou l'URL du référentiel Git ; par exemple,..
  4. 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-dockerfile
    

    Exemple 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:              Dockerfile
    

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

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

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.

  1. 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
    
  2. Passez dans le répertoire CodeEngine\helloworld.

  3. À partir du répertoire CodeEngine\helloworld, lancez une exécution de construction pour construire une image à partir de la source helloworld sur 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érationmedium par défaut.

    Le tableau suivant récapitule les options utilisées avec la commande buildrun submit dans cet exemple. Pour plus d'informations sur la commande et ses options, voir la commande ibmcloud ce buildrun submit.

    Description de la commande
    Option Description
    --name

    Nom 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 (-).
    --source Le chemin d'accès à la source locale qui contient votre code source ou l'URL du référentiel Git ; par exemple,..
    --image Emplacement du registre d'images. Le format de l'emplacement doit être REGISTRY/NAMESPACE/REPOSITORY ou REGISTRY/NAMESPACE/REPOSITORY:TAG , où TAG est facultatif. Si TAG n'est pas spécifié, la valeur par défaut est latest.
    --registry-secret Secret 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é.
  4. 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-dockerfile2
    

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