Crea una configurazione di build che estrae l'origine dal repository pubblico

Se la tua origine si trova in un repository pubblico, crea una configurazione di build con le impostazioni che includono informazioni su dove estrarre l'origine da un repository pubblico. Per l'output di build, puoi scegliere di specificare i dettagli del registro insieme a un segreto del registro per accedere alla tua immagine creata nel registro. Oppure puoi scegliere di consentire a Code Engine 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.

La creazione di una configurazione di build non crea un'immagine, bensì la configurazione per creare un'immagine. È necessario quindi eseguire una build che fa riferimento alla configurazione di build per creare una immagine. La configurazione di build non viene convalidata o utilizzata per creare un'immagine fino a quando non viene eseguita la build. La configurazione di build abilita più build successive di un'immagine, ad esempio quando le modifiche vengono applicate al repository di origine.

È possibile scegliere di ignorare alcuni pattern di file dall'interno del codice sorgente utilizzando il file .ceignore, che si comporta in modo simile a un file .gitignore. Ad esempio, le entrate 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.

Creazione di una configurazione di build dalla console (repository pubblico)

  1. Vai al dashboard Code Engine.

  2. Seleziona il progetto in cui hai aggiunto il tuo registro del contenitore.

  3. Dalla pagina del progetto, fare clic su Build immagine.

  4. Dalla scheda Image build, fai clic su Create. Il pannello laterale Specifica dettagli di build si apre dove si immettono i dettagli della build.

  5. Nella sezione Source, immetti un nome per la tua build, l'URL del tuo repository di origine e l'accesso al tuo repository di codice.

    • Se il tuo codice si trova in un repository pubblico, utilizza un URL HTTPS e seleziona Nessuno per l'accesso al repository di codice. Un esempio di URL HTTPS è https://github.com/IBM/CodeEngine.
    • Se il tuo codice si trova in un repository privato, utilizza un URL SSH per l'URL del repository di codice e seleziona il nome di un accesso al repository di codice esistente o crea un accesso al repository di codice. Un esempio di URL SSH è git@github.com:IBM/CodeEngine.git.
    • Facoltativamente, selezionare un nome ramo di origine. Se non fornisci un nome di ramo e lasci il campo vuoto, Code Engine utilizza automaticamente il ramo predefinito del repository specificato. È possibile immettere qualsiasi altro nome di ramo, tag o ID commit.

    Fai clic su Next per continuare.

  6. Nella sezione Strategia, selezionare la strategia che si desidera utilizzare.

    • Se selezioni Dockerfile, puoi specificare anche un percorso alternativo per il tuo Dockerfile.
    • Seleziona la dimensione della tua build in Build resources.

    Fai clic su Next per continuare.

  7. Nella sezione Output, immetti i dettagli della tua immagine del contenitore.

    • Selezionare un segreto del Registro di sistema esistente o fare clic su Crea segreto del Registro di sistema per aggiungerne uno nuovo.
    • Se stai creando la tua immagine in un'istanza Container Registry presente nel tuo account, puoi selezionare Code Engine managed secret e Code Engine crea e gestisce il segreto per te.
    • Seleziona quindi lo spazio dei nomi, il repository e la tag dell'immagine che vuoi creare. Puoi scegliere per Code Engine tp creare e gestire lo spazio dei nomi in Container Registry per te.
    • Se la tua immagine esiste in Container Registry, puoi selezionare dalle immagini esistenti o immettere un nuovo repository o tag.
  8. Fare clic su Fine per terminare la creazione della build.

Dopo aver creato la configurazione di build, è necessario eseguire la creazione per creare il file immagine. Una volta creato il tuo file di immagine, puoi distribuire un'applicazione o eseguire un lavoro con il tuo file di immagine appena creato.

Creazione di una configurazione di build con la CLI (repository pubblico)

Per creare una configurazione di build con la CLI, utilizza il comando build create. Per un elenco completo delle opzioni, consultare il comando ibmcloud ce build create.

Con il comando build create, puoi scegliere di lasciare che Code Engine si occupi di creare l'immagine dalla tua origine e quindi archiviare l'immagine in IBM Cloud Container Registry. Per questo caso di accesso automatico, non è necessario specificare un segreto di registro o l'ubicazione del registro delle immagini. Oppure, puoi specificare l'ubicazione per il tuo output dell'immagine di build e fornire un segreto del Registro di sistema in modo che Code Engine possa accedere e inviare il risultato della build al tuo Registro di sistema.

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

In questo scenario, Code Engine crea un'immagine dall'origine del repository Git pubblico e carica automaticamente l'immagine in IBM Cloud Container Registry con accesso automatico. Vedi Configurazione delle autorizzazioni per i registri delle 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. Crea una configurazione di build per creare una immagine da un repository Git pubblico e lascia che Code Engine memorizzi e acceda automaticamente all'immagine. Ad esempio, il seguente comando build create crea una configurazione di build denominata helloworld-build che crea dall'origine nel Git Git https://github.com/IBM/CodeEngine pubblico. In questo esempio, il comando utilizza la strategia dockerfile predefinita e la dimensione di build medium predefinita. Dal momento che 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 di un segreto del registro, Code Engine invia l'output di build a IBM Cloud Container Registry con accesso automatico.

    ibmcloud ce build create --name helloworld-build --source https://github.com/IBM/CodeEngine --context-dir /hello
    

    Output di esempio

    Creating build helloworld-build...
    OK
    

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

    Descrizione del comando
    Opzione Descrizione
    --name

    Il nome della creazione. Utilizzare un nome univoco all'interno del progetto. Questo valore è obbligatorio.

    • Il nome deve iniziare con una lettera minuscola.
    • Il nome deve terminare con un carattere alfanumerico minuscolo.
    • Il nome deve essere di 55 caratteri o meno e può contenere lettere, numeri e trattini (-).
    --source L'URL del repository Git che contiene il tuo 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. Questo valore è facoltativo.
  2. Utilizzare il comando build get per controllare lo stato della build.

    ibmcloud ce build get --name helloworld-build
    

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

Dopo aver creato la configurazione di build, è necessario eseguire la creazione per creare il file immagine. Una volta creato il tuo file di immagine, puoi distribuire un'applicazione o eseguire un lavoro con il tuo file di immagine appena creato.

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

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

Prima di iniziare

  1. Crea una configurazione di build per creare un'immagine da un repository Git pubblico e specifica l'ubicazione del registro delle immagini per l'output della creazione con un segreto di registro. Con il comando build create, specifica l'opzione --image per fornire l'ubicazione del registro delle immagini e specifica l'opzione --registry-secret per accedere al registro. Ad esempio, il seguente comando crea una configurazione di build denominata helloworld-build2 che crea dal repository Git pubblico https://github.com/IBM/CodeEngine e archivia l'immagine in us.icr.io/mynamespace/codeengine-helloworld utilizzando il segreto del registro myregistry. In questo esempio, il comando utilizza la strategia dockerfile predefinita e la dimensione di build medium predefinita. Dal momento che 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.

    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 /hello
    

    Output di esempio

    Creating build helloworld-build2...
    OK
    

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

    Descrizione del comando
    Opzione Descrizione
    --name

    Il nome della creazione. Utilizzare un nome univoco all'interno del progetto. Questo valore è obbligatorio.

    • Il nome deve iniziare con una lettera minuscola.
    • Il nome deve terminare con un carattere alfanumerico minuscolo.
    • Il nome deve essere di 55 caratteri o meno e può contenere lettere, numeri 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 del Registro di sistema utilizzato per accedere al Registro di sistema. È possibile aggiungere il segreto di registro eseguendo il comando secret create --format registry. Il segreto del Registro di sistema viene utilizzato per l'autenticazione con un registro privato.
    --source L'URL del repository Git che contiene il tuo 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. Questo valore è facoltativo.
  2. Utilizzare il comando build get per controllare lo stato della build.

    ibmcloud ce build get --name helloworld-build2
    

    Output di esempio

    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
    
    

Dopo aver creato la configurazione di build, è necessario eseguire la creazione per creare il file immagine. Una volta creato il tuo file di immagine, puoi distribuire un'applicazione o eseguire un lavoro con il tuo file di immagine appena creato.

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