IBM Cloud Docs
Creazione di un lavoro dal codice di origine del repository

Creazione di un lavoro dal codice di origine del repository

Puoi creare il tuo lavoro direttamente dal codice sorgente che si trova in un repository Git con la console e la CLI IBM Cloud® Code Engine. Scopri quali sono i vantaggi disponibili quando crei la tua immagine con Code Engine.

Creazione del lavoro dal codice sorgente del repository dalla console

È possibile creare il proprio lavoro direttamente dal codice sorgente con la console.

Prima di iniziare, pianifica la tua build. Puoi anche trovare suggerimenti per creare un Dockerfile. Ogni volta che esegui il lavoro, la versione più recente delle risorse di build dipendenti, inclusi i pacchetti di build e l'immagine del contenitore, vengono utilizzati durante il processo di build e vengono inclusi nell'immagine del contenitore risultante.

Code Engine può eseguire automaticamente il push (caricamento) delle immagini negli spazi dei nomi IBM Cloud® Container Registry nel tuo account e persino creare uno spazio dei nomi per te. Per eseguire il push delle immagini a un account Container Registry diverso o a un account Docker Hub privato, consulta Accesso ai registri del contenitore.

Per informazioni sulle autorizzazioni richieste per accedere ai registri delle immagini, consultare Impostazione delle autorizzazioni per i registri delle immagini.

  1. Apri la console Code Engine.
  2. Seleziona Let' s go.
  3. Selezionare Lavoro.
  4. Inserire un nome per il lavoro. Utilizzate un nome per il vostro lavoro che sia unico all'interno del progetto.
  5. Selezionare un progetto dall'elenco dei progetti disponibili. È anche possibile crearne uno nuovo. Per creare un job, è necessario disporre di un progetto selezionato.
  6. Selezionare Codice sorgente.
  7. Fare clic su Specifica dettagli build.
  8. Selezionare un repository di origine, ad esempio https://github.com/IBM/CodeEngine. Poiché stiamo utilizzando un'origine di esempio che non richiede credenziali, seleziona None per l'accesso al repository del codice. Facoltativamente, è possibile fornire un nome ramo. Se non fornisci un nome ramo e lasci il campo vuoto, Code Engine utilizza automaticamente il ramo predefinito del repository specificato. Fai clic su Next.
  9. Selezionare una strategia per la propria build e le relative risorse. Per ulteriori informazioni sulle opzioni di creazione, consultare Pianificazione della creazione. Fai clic su Next.
  10. Fornire le informazioni di registro su dove archiviare l'immagine dell'output di build. Selezionare un'ubicazione del registro del contenitore, come IBM Registry Dallas. Se il tuo registro è privato, devi configurare l'accesso ad esso.
  11. Selezionare un segreto di registro esistente o crearne uno nuovo. Se stai creando la tua immagine a un'istanza IBM Cloud Container Registry che si trova nel tuo account, puoi selezionare Code Engine managed secret e lasciare che Code Engine crei e gestisca il segreto per te.
  12. Seleziona uno spazio dei nomi, un nome e una tag per la tua immagine. Se stai creando la tua immagine in un'istanza IBM Cloud Container Registry che si trova nel tuo account, puoi selezionare uno spazio dei nomi esistente o lasciare che Code Engine crei e gestisca lo spazio dei nomi per te.
  13. Fai clic su Done.
  14. Modificare i valori predefiniti per le variabili di ambiente o le impostazioni di runtime. Per ulteriori informazioni su queste opzioni, consultare Opzioni per creare ed eseguire un lavoro.
  15. Fai clic su Crea.
  16. Una volta inoltrata l'esecuzione della tua build, l'immagine del contenitore creata viene inviata a Container Registry e quindi il tuo lavoro può fare riferimento all'immagine creata. Quando il lavoro è pronto, fare clic su Inoltra lavoro per eseguire il lavoro in base alla configurazione corrente.

Le esecuzioni di build completate vengono infine eliminate automaticamente. Quando l'esecuzione della build si basa sulla configurazione della build, questa viene eliminata dopo 3 ore se l'esecuzione della build ha esito positivo. Se l'esecuzione della build non ha esito positivo, questa esecuzione della build viene eliminata dopo 48 ore.

Una volta creato il lavoro e eseguito il lavoro, è possibile visualizzare i dettagli sulla configurazione del lavoro e sulle esecuzioni del lavoro dalla pagina del lavoro.

Hai bisogno di aiuto? Consulta Suggerimenti per la risoluzione dei problemi per le build.

Creazione del tuo lavoro dal codice di origine del repository con la CLI

È possibile creare il proprio job direttamente dal codice sorgente del repository con la CLI. Utilizza il comando job create per creare un'immagine dalla tua origine del repository Git e definire la configurazione per il tuo lavoro.

Prima di iniziare

In questo scenario, Code Engine crea un'immagine dalla tua origine del repository Git, carica automaticamente l'immagine al registro del tuo contenitore e crea quindi la configurazione del tuo lavoro per fare riferimento a questa immagine creata con il comando job create. Devi fornire solo un nome per il lavoro e l'URL al repository Git se l'immagine deve trovarsi in un account IBM Cloud Container Registry. In questo caso Code Engine gestisce lo spazio dei nomi per te. Tuttavia, se si desidera utilizzare un registro del contenitore differente, è necessario specificare l'immagine e un segreto del registro per tale registro del contenitore. Utilizzare il comando ibmcloud ce jobrun submit per eseguire il proprio lavoro che fa riferimento all'immagine creata. Per un elenco completo delle opzioni, consultare i comandi ibmcloud ce job create e ibmcloud ce jobrun submit.

Per informazioni sulle autorizzazioni richieste per accedere ai registri delle immagini, consultare Impostazione delle autorizzazioni per i registri delle immagini.

  1. Utilizzare il comando job create per creare il job myjob-repo per fare riferimento a un'immagine creata dall'origine di build https://github.com/IBM/CodeEngine. Questo comando crea automaticamente l'immagine e carica l'immagine in uno spazio dei nomi IBM Cloud® Container Registry nel tuo account e il lavoro viene eseguito per questo lavoro che fa riferimento a questa immagine creata. Specificando l'opzione --build-context-dir, la build utilizza l'origine nella directory helloworld. Questo esempio di comando utilizza la strategia dockerfile predefinita e la dimensione di build medium predefinita. Poiché il nome del ramo del repository non viene specificato con l'opzione --build-commit, Code Engine utilizza automaticamente il ramo predefinito del repository specificato. Aggiungendo l'opzione --wait, specifica che la creazione del lavoro attende il completamento della build dell'immagine.

    ibmcloud ce job create --name myjob-repo --build-source https://github.com/IBM/CodeEngine --build-context-dir helloworld --wait
    

    Output di esempio

    Creating job 'myjob-repo'...
    Submitting build run 'myjob-repo-run-220420-15590196'...
    Creating image 'private.us.icr.io/ce--abcde-glxo4kabcde/job-myjob-repo'...
    Waiting for build run to complete...
    Build run status: 'Running'
    Build run completed successfully.
    Run 'ibmcloud ce buildrun get -n myjob-repo-run-220420-15590196' to check the build run status.
    OK
    

    Poiché è stata specificata l'opzione --wait, l'output del comando job create fornisce informazioni sull'avanzamento dell'esecuzione della build prima della creazione del lavoro.

    In questo esempio, l'immagine creata viene caricata nello spazio dei nomi ce--abcde-glxo4kabcde in IBM Cloud Container Registry.

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

    Descrizione del comando
    Opzione Descrizione
    --name

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

    • Il nome deve iniziare e terminare con un carattere alfanumerico minuscolo.
    • Il nome deve essere di 63 caratteri o meno e può contenere lettere, numeri e trattini (-).
    --build-source L'URL del repository Git che contiene il tuo codice sorgente; ad esempio https://github.com/IBM/CodeEngine.
    --build-context-dir La directory nel repository che contiene il file buildpacks o il Dockerfile. Questo valore è facoltativo.
    --wait Specifica di attendere il completamento della creazione dell'immagine prima di creare il lavoro.
  2. (Facoltativo) Utilizzare il comando job get per visualizzare le informazioni sul lavoro, incluse le informazioni sulla build.

    ibmcloud ce job get --name myjob-repo
    

    Output di esempio

    [...]
    Name:          myjob-repo
    ID:            abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f  
    Project Name:  myproject  
    Project ID:    01234567-abcd-abcd-abcd-abcdabcd1111
    Age:           2d15h
    Created:       2022-04-14T16:10:11-04:00
    
    Image:                private.us.icr.io/ce--abcde-glxo4kabcde/job-myjob-repo
    
    Resource Allocation:
      CPU:     1
      Memory:  4G
    Registry Secrets:
      ce-auto-icr-private-us-south
    
    Runtime:
        Mode:                  task
        Array Indices:         0
        Array Size:            1
        Max Execution Time:    7200
        Retry Limit:           3
    
    Build Information:
      Build Run Name:     myjob-repo-run-220420-15590196
      Build Type:         git
      Build Strategy:     dockerfile-medium
      Timeout:            600
      Source:             https://github.com/IBM/CodeEngine
      Context Directory:  helloworld
      Dockerfile:         Dockerfile
    
      Build Run Summary:  Succeeded
      Build Run Status:   Succeeded
      Build Run Reason:   All Steps have completed executing
      Run 'ibmcloud ce buildrun get -n myjob-repo-run-220420-15590196' for details.
    
  3. Ora che il tuo lavoro è stato creato e la tua immagine è stata creata, esegui il tuo lavoro che fa riferimento all'immagine creata. Questo comando di esempio esegue il lavoro myjobrun-repo in base alla configurazione del lavoro myjob-repo.

    ibmcloud ce jobrun submit --name myjobrun-repo --job myjob-repo
    
  4. (facoltativo) Visualizzare i dettagli dell'esecuzione del lavoro.

    ibmcloud ce jobrun get --name myjobrun-repo
    

    Output di esempio

    Getting jobrun 'myjobrun-local'...
    Getting instances of jobrun 'myjobrun-local'...
    Getting events of jobrun 'myjobrun-local'...
    Run 'ibmcloud ce jobrun events -n myjobrun-local' to get the system events of the job run instances.
    Run 'ibmcloud ce jobrun logs -f -n myjobrun-local' to follow the logs of the job run instances.
    OK
    
    Name:          myjobrun-local
    ID:            abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f  
    Project Name:  myproject  
    Project ID:    01234567-abcd-abcd-abcd-abcdabcd1111
    Age:           2d15h
    Created:       2022-04-14T16:10:11-04:00
    
    Job Ref:              myjob-repo
    Image:                private.us.icr.io/ce--abcde-glxo4kabcde/job-myjob-repo
    Resource Allocation:
      CPU:                1
      Ephemeral Storage:  400M
      Memory:             4G
    Registry Secrets:
      ce-auto-icr-private-us-south
    
    Runtime:
        Mode:                  task
        Array Indices:         0
        Array Size:            1
        JOP_ARRAY_SIZE Value:  1
        Max Execution Time:    7200
        Retry Limit:           3
    
    Status:
      Completed:          90s
      Instance Statuses:
        Succeeded:  1
      Conditions:
        Type      Status  Last Probe  Last Transition
        Pending   True    101s        101s
        Running   True    91s         91s
        Complete  True    90s         90s
    
    Events:
      Type    Reason     Age                 Source                Messages
      Normal  Updated    91s (x4 over 102s)  batch-job-controller  Updated JobRun "myjobrun-repo"
      Normal  Completed  91s                 batch-job-controller  JobRun completed successfully
    
    Instances:
      Name               Running  Status     Restarts  Age
      myjobrun-repo-0-0  0/1      Succeeded  0         102s
    

Ora che il lavoro è creato ed eseguito dal codice sorgente del repository, è possibile aggiornarlo per soddisfare le proprie necessità utilizzando il comando ibmcloud ce job update. Per ulteriori informazioni sull'aggiornamento dei lavori, consultare Aggiornamento di un lavoro. Se si desidera aggiornare l'origine da utilizzare con il lavoro, è necessario fornire l'opzione --build-source nel comando job update.

Quando il lavoro viene creato dal codice di origine del repository o da origine locale con la CLI, l'esecuzione della build risultante non si basa su una configurazione di build. Le esecuzioni di build completate vengono infine eliminate automaticamente. Le esecuzioni di build che non si basano su una configurazione di build vengono eliminate 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.

Passi successivi

  • Dopo aver creato il lavoro, inoltrare il lavoro per eseguirlo. Vedere Esecuzione di un lavoro. È possibile eseguire il lavoro più volte.

  • Dopo aver eseguito il lavoro, per visualizzare i dettagli del lavoro e delle esecuzioni del lavoro, consultare dettagli del lavoro di accesso.

  • Ora che il tuo lavoro è stato creato, considera di rendere i tuoi lavori guidati da eventi. Utilizzando le sottoscrizioni agli eventi, puoi attivare i tuoi lavori mediante pianificazioni periodiche o impostare il lavoro in modo che reagisca agli eventi come i caricamenti di file.

  • È possibile aggiornare il lavoro e il relativo codice di riferimento in qualsiasi dei seguenti modi, indipendentemente dal modo in cui è stato creato o precedentemente aggiornato il lavoro.

    • Se hai un'immagine del contenitore, in base allo standard OCI(Open Container Initiative), devi fornire solo un riferimento all'immagine, che punta all'ubicazione del tuo registro del contenitore quando crei (o aggiorni) il tuo lavoro. Puoi creare (o aggiornare) il tuo lavoro dalle immagini in un registro pubblico o in un Registro privato e quindi accedere all'immagine di riferimento dalla tua esecuzione del lavoro.

      Se hai creato il tuo lavoro utilizzando il comando job create e hai specificato l'opzione --build-source per creare l'immagine del contenitore dall'origine del repository o locale e vuoi modificare il tuo lavoro in modo che punti a un'altra immagine del contenitore, devi prima rimuovere l'associazione della build dal tuo lavoro. Ad esempio, eseguire ibmcloud ce job update -n JOB_NAME --build-clear. Dopo aver rimosso l'associazione della build dal tuo lavoro, puoi aggiornare il lavoro per fare riferimento a un'immagine diversa.

    • Se stai iniziando con il codice sorgente che risiede in un repository Git, puoi scegliere di consentire a Code Engine di creare l'immagine dalla tua origine e creare (o aggiornare) il lavoro con una singola operazione. In questo scenario, Code Engine carica la tua immagine in IBM Cloud® Container Registry. Per ulteriori informazioni, consultare Creazione di un lavoro dal codice sorgente del repository. Se vuoi avere un maggiore controllo sulla build della tua immagine, puoi scegliere di creare l'immagine con Code Engine prima di creare (o aggiornare) il tuo lavoro ed eseguirlo.

    • Se stai iniziando con il codice di origine che risiede su una workstation locale, puoi scegliere di consentire a Code Engine di creare l'immagine dalla tua origine e creare il lavoro con un singolo comando CLI. In questo scenario, Code Engine carica la tua immagine in IBM Cloud® Container Registry. Per ulteriori informazioni, vedi Creazione del tuo lavoro dal codice sorgente locale con la CLI. Se desideri un maggiore controllo sulla build della tua immagine, puoi scegliere di creare l'immagine) con Code Engine prima di creare (o aggiornare) il tuo lavoro ed eseguire il lavoro.

    Ad esempio, potresti scegliere di lasciare che Code Engine gestisca la creazione della tua origine locale mentre evolvi lo sviluppo della tua origine per il lavoro. Quindi, una volta maturata l'immagine, puoi aggiornare il job per fare riferimento all'immagine specifica che desideri. È possibile ripetere questo processo in base alle necessità.

    Quando esegui il tuo job aggiornato, per l'esecuzione del job viene utilizzata l'ultima versione della tua immagine del contenitore di riferimento, a meno che non venga specificata una tag per l'immagine. Se viene specificato un tag per l'immagine, l'immagine con tag viene utilizzata per l'esecuzione del lavoro.

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