Creazione di un'immagine contenitore con i comandi di build autonomi (CLI)

Quando il tuo codice esiste come origine in un file locale o in un repository Git, Code Engine ti fornisce le opzioni per creare il tuo codice come un'immagine del contenitore, secondo lo standard OCI(Open Container Initiative). Con la CLI Code Engine puoi creare un'immagine del contenitore con un singolo comando.

Code Engine offre la flessibilità di gestire il processo di build per te ogni volta che stai distribuendo la tua applicazione dal codice sorgente del repository, distribuendo la tua applicazione dal codice sorgente locale con la CLI o stai creando un lavoro dal codice sorgente del repository o creando il tuo lavoro dal codice sorgente locale con la CLI.

Tuttavia, se vuoi un maggiore controllo sulla build della tua immagine del contenitore, Code Engine ti offre la flessibilità di creare la tua immagine del contenitore utilizzando una delle seguenti opzioni:

  • Utilizza un singolo comando CLI, buildrun submit, per eseguire un'esecuzione di build. Il vantaggio di questa opzione è che puoi ottenere la tua build con un singolo comando CLI; tuttavia, la configurazione per la creazione non viene conservata.
  • Definire una configurazione di build da cui è possibile eseguire più esecuzioni di build. Vedi Creazione di un'immagine del contenitore utilizzando una configurazione di build.

Dopo che la tua build è completa e la tua immagine esiste, puoi distribuire l'immagine del contenitore come un'applicazione o creare un job che faccia riferimento alla tua immagine.

Impariamo come creare la tua immagine contenitore con un singolo comando e non fare riferimento a una configurazione di build. In questo scenario, IBM Cloud® Code Engine estrae il codice sorgente da un repository Git o da una directory locale, lo crea e quindi inserisce (carica) l'immagine del contenitore in un registro. Puoi scegliere repository pubblici o privati e registri. Puoi scegliere di specificare i dettagli di registro con un segreto di registro per il tuo output di build con accesso fornito dall'utente. In alternativa, puoi scegliere di consentire a Code Engine di creare l'immagine per te dalla tua origine e archiviarla in IBM Cloud Container Registry con accesso automatico.

È possibile scegliere di ignorare alcuni pattern di file dall'interno del codice origine utilizzando il file .ceignore, che si comporta in modo simile a un file .gitignore. Ad esempio, le voci per un file .ceignore per un'applicazione node.js potrebbero includere node_modules e .npm. Per ulteriori modelli di file di esempio da ignorare, vedi GitHub.gitignore repository.

Considera i seguenti punti prima di creare la tua immagine del contenitore:

  • Prima di iniziare a creare le immagini, esamina le informazioni di pianificazione. Dovrai anche verificare di poter accedere al registro. Consultare Impostazione delle autorizzazioni per i registri dei contenitori.

  • Se crei più versioni della stessa immagine del contenitore, la versione più recente dell'immagine del contenitore viene scaricata e utilizzata quando esegui il tuo lavoro o distribuisci la tua applicazione, a meno che non venga specificata una tag per l'immagine. Se viene specificata una tag per l'immagine, l'immagine con tag viene utilizzata per l'app o il lavoro.

  • Anche le esecuzioni di build inoltrate con la CLI che non fanno riferimento a una configurazione di build definita sono visualizzabili dalla console. Dalla pagina del progetto, fare clic su Build di immagini per visualizzare l'elenco di build di immagini ed esecuzioni di build. Con la CLI, utilizza il comando ibmcloud ce buildrun list per visualizzare un elenco di tutte le esecuzioni di build in un progetto.

  • Code Engine ha quote per le esecuzioni di build all'interno di un progetto. Per ulteriori informazioni sui limiti di Code Engine, consulta Limiti e quote per Code Engine.

Le esecuzioni di build completate vengono infine eliminate automaticamente. Quando esegui un'esecuzione di build con un singolo comando CLI in modo che non sia basato su una configurazione di build, questa esecuzione di build viene eliminata dopo 1 ora se l'esecuzione di build ha esito positivo. Se l'esecuzione della build non ha esito positivo, questa esecuzione della build viene eliminata dopo 24 ore. È possibile visualizzare solo le informazioni su questa esecuzione di build con la CLI. Non è possibile visualizzare questa esecuzione di build nella console.

Esecuzione di una singola build che estrae l'origine dal repository pubblico con la CLI

Se la tua origine si trova in un repository pubblico e vuoi utilizzare un singolo comando per creare ed emettere un'immagine del contenitore, utilizza il comando buildrun submit per creare l'immagine del contenitore senza creare una configurazione di build riutilizzabile.

Per l'output della build, puoi scegliere l' accesso automatico e lasciare che Code Engine si occupi di creare l'immagine per te dalla tua origine e archiviarla in IBM Cloud Container Registry. In questo caso, non è necessario specificare un segreto del Registro di sistema o l'ubicazione del Registro immagini. In alternativa, puoi scegliere accesso fornito dall'utente e specificare i dettagli del registro insieme a un segreto del registro per accedere alla tua immagine creata nel registro.

Per un elenco completo delle opzioni per l'esecuzione di una singola build, consultare il comando ibmcloud ce buildrun submit.

Esecuzione di una singola build con la CLI (con origine del repository pubblico e accesso automatico al registro)

In questo scenario di accesso automatico, Code Engine crea un'immagine dall'origine del tuo repository Git pubblico e carica l'immagine in IBM Cloud Container Registry con accesso automatico utilizzando le opzioni di build con il comando buildrun submit. In questo caso, non è necessario specificare un segreto del Registro di sistema o l'ubicazione del registro delle immagini.

Consulta Configurazione delle autorizzazioni per i registri di immagini per ulteriori informazioni sull'impostazione delle autorizzazioni richieste per Code Engine per accedere automaticamente a queste immagini in Container Registry.

Prima di iniziare

  1. Esegui una build per creare un'immagine da un repository Git pubblico e lascia che Code Engine memorizzi e acceda automaticamente all'immagine. Ad esempio, il seguente comando buildrun submit esegue un'esecuzione di build denominata helloworld-buildrun che crea dall'origine nel Git Git https://github.com/IBM/CodeEngine pubblico.

    ibmcloud ce buildrun submit --name helloworld-buildrun --source https://github.com/IBM/CodeEngine --context-dir /hello
    
    • In questo esempio, il comando utilizza la strategia dockerfile predefinita e la dimensione di build medium predefinita.
    • Poiché il nome del ramo del repository non è specificato con l'opzione --commit, Code Engine utilizza automaticamente il ramo predefinito del repository specificato, che è main per questo repository Git.
    • Non specificando l'ubicazione del registro delle immagini o un segreto del Registro di sistema, Code Engine invia l'output di build a IBM Cloud Container Registry con accesso automatico.
    • Code Engine determina automaticamente se la tua origine risiede in un repository o su una workstation locale, in base al valore dell'opzione --source.

    Output di esempio

    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
    

    La seguente tabella riepiloga le opzioni utilizzate con il comando buildrun submit in questo esempio. Per ulteriori informazioni sul comando e le sue opzioni, consultare il comando ibmcloud ce buildrun submit.

    Descrizione del comando
    Opzione Descrizione
    --name

    Il nome dell'esecuzione di build. Utilizzare un nome univoco all'interno del progetto.

    • Il nome deve iniziare e terminare con una lettera minuscola.
    • Il nome deve avere una lunghezza massima di 63 caratteri e può contenere caratteri alfanumerici minuscoli e trattini (-).
    --source L'URL del repository Git o il percorso dell'origine locale che contiene il codice sorgente; ad esempio, https://github.com/IBM/CodeEngine.
    --context-dir La directory nel repository che contiene il file buildpacks o il Dockerfile. Specifica questo valore se il tuo file dei pacchetti di build o Dockerfile è contenuto in una sottodirectory.
  2. Utilizzare il comando buildrun get per controllare lo stato dell'esecuzione della build.

    ibmcloud ce buildrun get -n helloworld-buildrun
    

    Output di esempio

    Notare il nome generato per l'immagine e che il nome del segreto di registro creato automaticamente è nel formato, 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
    

Esecuzione di una singola build con la CLI (con l'origine del repository pubblico e l'accesso al registro fornito dall'utente)

In questo scenario di accesso fornito dall'utente, Code Engine crea un'immagine dall'origine del repository Git pubblico e quindi carica l'immagine sul registro del contenitore con l'accesso al registro che fornisci con un singolo comando di build.

Prima di iniziare

  1. Esegui una build per creare un'immagine da un repository Git pubblico e specifica l'ubicazione del registro delle immagini per l'output di build con un segreto di registro. Ad esempio, il seguente comando buildrun submit esegue un'esecuzione di build denominata helloworld-buildrun2 che crea dal repository Git pubblico https://github.com/IBM/CodeEngine e memorizza l'immagine nel registro di us.icr.io/mynamespace/codeengine-helloworld utilizzando il segreto di registro myregistry per accedere a questo registro.

    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
    
    • In questo esempio, il comando utilizza la strategia dockerfile predefinita e la dimensione di build medium predefinita.
    • Poiché il nome del ramo del repository non è specificato con l'opzione --commit, Code Engine utilizza automaticamente il ramo predefinito del repository specificato, che è main per questo repository Git.
    • Se si utilizza l'opzione --strategy con il valore dockerfile, assicurarsi che l'opzione --dockerfile sia impostata correttamente sul nome di dockerfile. Il valore predefinito per l'opzione --strategy è Dockerfile.
    • Code Engine determina automaticamente se la tua origine risiede in un repository o su una workstation locale, in base al valore dell'opzione --source.

    Output di esempio

    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
    

    La seguente tabella riepiloga le opzioni utilizzate con il comando buildrun submit in questo esempio. Per ulteriori informazioni sul comando e le sue opzioni, consultare il comando ibmcloud ce buildrun submit.

    Descrizione del comando
    Opzione Descrizione
    --name

    Il nome dell'esecuzione di build. Utilizzare un nome univoco all'interno del progetto. Questo valore è obbligatorio.

    • Il nome deve iniziare e terminare con una lettera minuscola.
    • Il nome deve essere di 63 caratteri o meno e può contenere caratteri alfanumerici minuscoli e trattini (-).
    --image L'ubicazione del registro immagini. Il formato dell'ubicazione deve essere REGISTRY/NAMESPACE/REPOSITORY o REGISTRY/NAMESPACE/REPOSITORY:TAG dove TAG è facoltativo. Se TAG non è specificato, il valore predefinito è latest.
    --registry-secret Il segreto di registro utilizzato per accedere al registro quando crei l'immagine del contenitore. Eseguire il comando secret create --format registry per creare un segreto del Registro di sistema. Il segreto del Registro di sistema viene utilizzato per autenticarsi con un registro privato.
    --source L'URL del repository Git o il percorso dell'origine locale che contiene il codice sorgente; ad esempio, https://github.com/IBM/CodeEngine.
    --context-dir La directory nel repository che contiene il file buildpacks o il Dockerfile. Specifica questo valore se il tuo file dei pacchetti di build o Dockerfile è contenuto in una sottodirectory.
  2. Utilizzare il comando buildrun get per controllare lo stato dell'esecuzione della build.

    ibmcloud ce buildrun get --name helloworld-buildrun2
    

    Output di esempio

    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
    

Se si riceve un errore di convalida del comando, verificare che il segreto esista. Se fai riferimento a un segreto del Registro di sistema (--registry-secret) per la tua immagine e il segreto non esiste, vedi Accesso ai registri del contenitore. Per ulteriori informazioni sulle build, consulta i suggerimenti per la risoluzione dei problemi.

Esecuzione di una singola build che estrae l'origine dal repository privato con la CLI

Se l'origine si trova in un repository privato e si desidera utilizzare un singolo comando per creare ed emettere un'immagine del contenitore, utilizzare il comando buildrun submit per creare l'immagine del contenitore senza creare una configurazione di build riutilizzabile.

Per l'output della build, puoi scegliere l' accesso automatico e lasciare che Code Engine si occupi di creare l'immagine per te dalla tua origine e archiviarla in IBM Cloud Container Registry. In questo caso, non è necessario specificare un segreto del Registro di sistema o l'ubicazione del Registro immagini. In alternativa, puoi scegliere accesso fornito dall'utente e specificare i dettagli del registro insieme a un segreto del registro per accedere alla tua immagine creata nel registro.

Per un elenco completo delle opzioni per l'esecuzione di una singola build, consultare il comando ibmcloud ce buildrun submit.

Esecuzione di una singola build con la CLI (con origine del repository privato e accesso automatico al registro)

In questo scenario di accesso automatico, Code Engine crea un'immagine dalla tua origine del repository privata e carica l'immagine in IBM Cloud Container Registry con accesso automatico utilizzando le opzioni di build con il comando buildrun submit. In questo caso, non è necessario specificare un segreto del Registro di sistema o l'ubicazione del registro delle immagini.

Consulta Configurazione delle autorizzazioni per i registri di immagini per ulteriori informazioni sull'impostazione delle autorizzazioni richieste per Code Engine per accedere automaticamente a queste immagini in Container Registry.

Prima di iniziare

  1. Esegui una build per creare una immagine da un repository privato e lascia che Code Engine memorizzi e acceda automaticamente all'immagine. Ad esempio, il seguente comando buildrun submit esegue un'esecuzione di build denominata helloworld-buildrun-private che crea dal repository Git privato https://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
    
    • Questo comando di esempio utilizza la strategia buildpacks e la dimensione di build medium.
    • Non specificando l'ubicazione del registro delle immagini o un segreto del Registro di sistema, Code Engine invia l'output di build a IBM Cloud Container Registry con accesso automatico.
    • Poiché l'origine nel repository Git specificato è privata, l'accesso richiede un segreto SSH. Un segreto SSH viene utilizzato anche come segreto di accesso al repository Git. Di conseguenza, il --source che specifichi deve utilizzare il protocollo SSH, come ad esempio git@github.com:myprivaterepo/builds.git. Il valore per --source non deve utilizzare il formato http o https.
    • Poiché il nome del ramo del repository non viene specificato con l'opzione --commit, Code Engine utilizza automaticamente il ramo predefinito del repository specificato.
    • Code Engine determina automaticamente se la tua origine risiede in un repository o su una workstation locale, in base al valore dell'opzione --source.

    La seguente tabella riepiloga le opzioni utilizzate con il comando buildrun submit in questo esempio. Per ulteriori informazioni sul comando e le sue opzioni, consultare il comando ibmcloud ce buildrun submit.

    Descrizione del comando
    Opzione Descrizione
    --name

    Il nome dell'esecuzione di build. Utilizzare un nome univoco all'interno del progetto. Questo valore è obbligatorio.

    • Il nome deve iniziare e terminare con una lettera minuscola.
    • Il nome deve essere di 63 caratteri o meno e può contenere caratteri alfanumerici minuscoli e trattini (-).
    --source L'URL del repository Git o il percorso dell'origine locale che contiene il codice sorgente; ad esempio, git@github.com:myprivaterepo/builds.git.
    --context-dir La directory nel repository che contiene il file buildpacks o il Dockerfile. Specifica questo valore se il tuo file dei pacchetti di build o Dockerfile è contenuto in una sottodirectory.
    --strategy La strategia da utilizzare per il build dell'immagine. I valori validi sono dockerfile e buildpacks.
    --git-repo-secret Il nome del segreto SSH, contenente le credenziali per accedere al repository privato che contiene il codice sorgente per creare la propria immagine del contenitore. Eseguire il comando secret create --ssh per creare questo segreto. Un segreto SSH viene utilizzato anche come segreto di accesso al repository Git.
  2. Utilizzare il comando buildrun get per controllare lo stato dell'esecuzione della build.

    ibmcloud ce buildrun get --name helloworld-buildrun-private
    

    Output di esempio

    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
    

Esecuzione di una singola build con la CLI (con origine del repository privato e accesso fornito dall'utente al registro)

In questo scenario di accesso fornito dall'utente, Code Engine crea un'immagine dalla tua origine del repository privata con un segreto del repository Git che fornisci e quindi carica l'immagine sul tuo registro del contenitore con l'accesso al registro che fornisci con un singolo comando di build.

Prima di iniziare

  1. Esegui una build per creare un'immagine da un repository privato e specifica l'ubicazione del registro delle immagini per l'output di build con un segreto di registro. Il seguente esempio di comando buildrun submit esegue un'esecuzione di build denominata helloworld-buildrun-private2 che crea dal repository Git privato https://github.com/myprivaterepo/builds e memorizza l'immagine in us.icr.io/mynamespace/codeengine-helloworld utilizzando il segreto del registro myregistry per accedere a questo registro.

    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
    
    • Questo comando di esempio utilizza la strategia buildpacks e la dimensione di build medium predefinita.
    • Poiché il repository Git fornito è privato, l'accesso richiede un segreto SSH. Un segreto SSH viene utilizzato anche come segreto di accesso al repository Git. Di conseguenza, il --source che specifichi deve utilizzare il protocollo SSH, come ad esempio git@github.com:myprivaterepo/builds.git. Il valore per --source non deve utilizzare il formato http o https.
    • Poiché il nome del ramo del repository non viene specificato con l'opzione --commit, Code Engine utilizza automaticamente il ramo predefinito del repository specificato.
    • Code Engine determina automaticamente se la tua origine risiede in un repository o su una workstation locale, in base al valore dell'opzione --source.

    La seguente tabella riepiloga le opzioni utilizzate con il comando buildrun submit in questo esempio. Per ulteriori informazioni sul comando e le sue opzioni, consultare il comando ibmcloud ce buildrun submit.

    Descrizione del comando
    Opzione Descrizione
    --name

    Il nome dell'esecuzione di build. Utilizzare un nome univoco all'interno del progetto. Questo valore è obbligatorio.

    • Il nome deve iniziare e terminare con una lettera minuscola.
    • Il nome deve essere di 63 caratteri o meno e può contenere caratteri alfanumerici minuscoli e trattini (-).
    --image L'ubicazione del registro immagini. Il formato dell'ubicazione deve essere REGISTRY/NAMESPACE/REPOSITORY o REGISTRY/NAMESPACE/REPOSITORY:TAG dove TAG è facoltativo. Se TAG non è specificato, il valore predefinito è latest.
    --registry-secret Il segreto di registro utilizzato per accedere al registro quando crei l'immagine del contenitore. Eseguire il comando secret create --format registry per creare un segreto del Registro di sistema. Il segreto del Registro di sistema viene utilizzato per autenticarsi con un registro privato.
    --source L'URL del repository Git o il percorso dell'origine locale che contiene il codice sorgente; ad esempio, git@github.com:myprivaterepo/builds.git.
    --context-dir La directory nel repository che contiene il file buildpacks o il Dockerfile. Specifica questo valore se il tuo file dei pacchetti di build o Dockerfile è contenuto in una sottodirectory.
    --strategy La strategia da utilizzare per il build dell'immagine. I valori validi sono dockerfile e buildpacks.
    --git-repo-secret Il nome del segreto SSH, contenente le credenziali per accedere al repository privato che contiene il codice sorgente per creare la propria immagine del contenitore. Eseguire il comando secret create --ssh per creare questo segreto. Un segreto SSH viene utilizzato anche come segreto di accesso al repository Git.
  2. Utilizzare il comando buildrun get per controllare lo stato dell'esecuzione della build.

    ibmcloud ce buildrun get --name helloworld-buildrun-private2
    

    Output di esempio

    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
    

Esecuzione di una singola build che estrae l'origine da una directory locale

Se l'origine si trova sulla workstation locale e si desidera utilizzare un singolo comando per creare ed emettere un'immagine del contenitore, utilizzare il comando buildrun submit per creare l'immagine del contenitore senza creare una configurazione di build riutilizzabile.

Per l'output della build, puoi scegliere l' accesso automatico e lasciare che Code Engine si occupi di creare l'immagine per te dalla tua origine e archiviarla in IBM Cloud Container Registry. In questo caso, non è necessario specificare un segreto del Registro di sistema o l'ubicazione del Registro immagini. In alternativa, puoi scegliere accesso fornito dall'utente e specificare i dettagli del registro insieme a un segreto del registro per accedere alla tua immagine creata nel registro.

Quando invii una build che estrae il codice da una directory locale, il codice sorgente viene compresso in un file di archivio e caricato nella tua istanza IBM Cloud Container Registry. Nota che puoi indicare come destinazione solo IBM Cloud Container Registry per le tue build locali. L'immagine di origine viene creata nello stesso spazio nomi della tua immagine di creazione.

È possibile scegliere di ignorare alcuni pattern di file dall'interno del codice origine utilizzando il file .ceignore, che si comporta in modo simile a un file .gitignore. Ad esempio, le voci per un file .ceignore per un'applicazione node.js potrebbero includere node_modules e .npm. Per ulteriori modelli di file di esempio da ignorare, vedi GitHub.gitignore repository.

Per un elenco completo delle opzioni per l'esecuzione di una singola build, consultare il comando ibmcloud ce buildrun submit.

Esecuzione di una singola build con la CLI (con origine locale e accesso automatico al registro)

In questo scenario di accesso automatico, Code Engine crea un'immagine dalla tua origine locale e carica automaticamente l'immagine in IBM Cloud Container Registry con accesso automatico utilizzando le opzioni di build con il comando buildrun submit.

Consulta Configurazione delle autorizzazioni per i registri di immagini per ulteriori informazioni sull'impostazione delle autorizzazioni richieste per Code Engine per accedere automaticamente a queste immagini in Container Registry. In questo caso, non è necessario specificare un segreto del Registro di sistema o l'ubicazione del registro delle immagini.

Prima di iniziare

Prima di lavorare con l'origine locale, verificare che l'origine si trovi in un'ubicazione accessibile sulla stazione di lavoro locale.

Questo esempio utilizza gli esempi https://github.com/IBM/CodeEngine ; in particolare, l'esempio helloworld.

  1. Scarica l'origine di esempio https://github.com/IBM/CodeEngine sulla tua workstation locale con il seguente comando.

    git clone https://github.com/IBM/CodeEngine
    
  2. Passare alla directory CodeEngine\helloworld.

  3. Dalla directory CodeEngine\helloworld, esegui una build per creare un'immagine dall'origine helloworld sulla tua workstation locale e lascia che Code Engine memorizzi e acceda automaticamente all'immagine. Questo comando crea e invia automaticamente l'immagine a uno spazio dei nomi Container Registry nel tuo account. Se non hai uno spazio dei nomi Container Registry esistente, Code Engine ne crea automaticamente uno per te. Ad esempio, il seguente comando buildrun submit esegue un'esecuzione di build denominata buildrun-local-dockerfile che esegue la build dall'origine locale.

    ibmcloud ce buildrun submit --name buildrun-local-dockerfile --source .
    

    . indica che l'origine build si trova nella directory di lavoro corrente.

    • Questo esempio di comando utilizza la strategia dockerfile predefinita e la dimensione di build medium predefinita.
    • Non specificando l'ubicazione del registro delle immagini o un segreto del Registro di sistema, Code Engine invia l'output di build a IBM Cloud Container Registry con accesso automatico.
    • Code Engine determina automaticamente se la tua origine risiede in un repository o su una workstation locale, in base al valore dell'opzione --source.

    Output di esempio

    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
    

    La seguente tabella riepiloga le opzioni utilizzate con il comando buildrun submit in questo esempio. Per ulteriori informazioni sul comando e le sue opzioni, consultare il comando ibmcloud ce buildrun submit.

    Descrizione del comando
    Opzione Descrizione
    --name

    Il nome dell'esecuzione di build. Utilizzare un nome univoco all'interno del progetto. Questo valore è obbligatorio.

    • Il nome deve iniziare e terminare con una lettera minuscola.
    • Il nome deve essere di 63 caratteri o meno e può contenere caratteri alfanumerici minuscoli e trattini (-).
    --source Il percorso dell'origine locale che contiene il codice sorgente o l'URL del repository Git ; ad esempio, ..
  4. Utilizzare il comando buildrun get per controllare lo stato dell'esecuzione della build.

    ibmcloud ce buildrun get --name buildrun-local-dockerfile
    

    Output di esempio

    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
    

    Notare il nome generato per l'immagine e che il nome del segreto di registro creato automaticamente è nel formato, ce-auto-icr-private-<region>.

Esecuzione di una singola build con la CLI (con l'origine locale e l'accesso fornito dall'utente al registro)

In questo scenario di accesso fornito dall'utente, Code Engine crea un'immagine dalla tua origine locale e quindi carica l'immagine sul tuo registro del contenitore con l'accesso al registro che fornisci con il comando buildrun submit.

Prima di iniziare

Prima di lavorare con l'origine locale, verificare che l'origine si trovi in un'ubicazione accessibile sulla stazione di lavoro locale.

Questo esempio utilizza gli esempi https://github.com/IBM/CodeEngine ; in particolare, l'esempio helloworld.

  1. Scarica l'origine di esempio https://github.com/IBM/CodeEngine sulla tua workstation locale con il seguente comando.

    git clone https://github.com/IBM/CodeEngine
    
  2. Passare alla directory CodeEngine\helloworld.

  3. Dalla directory CodeEngine\helloworld, eseguire un'esecuzione di build per creare un'immagine dall'origine helloworld sulla workstation locale e specificare l'ubicazione del registro delle immagini per l'output di build con un segreto di registro. Questo comando buildrun submit crea e inserisce automaticamente l'immagine nel registro che specifichi con l'opzione --image. Specificare l'opzione --registry-secret per accedere al registro.

    ibmcloud ce buildrun submit --name buildrun-local-dockerfile2 --source . --image us.icr.io/mynamespace/codeengine-helloworld --registry-secret myregistry
    

    . indica che l'origine build si trova nella directory di lavoro corrente.

    • Code Engine determina automaticamente se la tua origine risiede in un repository o su una workstation locale, in base al valore dell'opzione --source.
    • In questo esempio, il comando utilizza la strategia dockerfile predefinita e la dimensione di build medium predefinita.

    La seguente tabella riepiloga le opzioni utilizzate con il comando buildrun submit in questo esempio. Per ulteriori informazioni sul comando e le sue opzioni, consultare il comando ibmcloud ce buildrun submit.

    Descrizione del comando
    Opzione Descrizione
    --name

    Il nome dell'esecuzione di build. Utilizzare un nome univoco all'interno del progetto. Questo valore è obbligatorio.

    • Il nome deve iniziare e terminare con una lettera minuscola.
    • Il nome deve essere di 63 caratteri o meno e può contenere caratteri alfanumerici minuscoli e trattini (-).
    --source Il percorso dell'origine locale che contiene il codice sorgente o l'URL del repository Git ; ad esempio, ..
    --image L'ubicazione del registro immagini. Il formato dell'ubicazione deve essere REGISTRY/NAMESPACE/REPOSITORY o REGISTRY/NAMESPACE/REPOSITORY:TAG dove TAG è facoltativo. Se TAG non è specificato, il valore predefinito è latest.
    --registry-secret Il segreto di registro utilizzato per accedere al registro quando crei l'immagine del contenitore. Eseguire il comando secret create --format registry per creare un segreto del Registro di sistema. Il segreto del Registro di sistema viene utilizzato per autenticarsi con un registro privato.
  4. Utilizzare il comando buildrun get per controllare lo stato dell'esecuzione della build.

    ibmcloud ce buildrun get --name buildrun-local-dockerfile2
    

    Output di esempio

    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
    

Passi successivi per le build

Ora che hai creato un'immagine del contenitore dalla tua origine, puoi ora creare un'applicazione o un lavoro che utilizza la tua immagine del contenitore. Consultare Distribuzione delle applicazioni e Esecuzione dei lavori.

Cerchi altri esempi di codice? Consulta gli Esempi per il repository IBM Cloud Code Engine GitHub.