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.
- Apri la console Code Engine.
- Seleziona Let' s go.
- Selezionare Lavoro.
- Inserire un nome per il lavoro. Utilizzate un nome per il vostro lavoro che sia unico all'interno del progetto.
- Selezionare un progetto dall'elenco dei progetti disponibili. È anche possibile crearne uno nuovo. Per creare un job, è necessario disporre di un progetto selezionato.
- Selezionare Codice sorgente.
- Fare clic su Specifica dettagli build.
- Selezionare un repository di origine, ad esempio
https://github.com/IBM/CodeEngine
. Poiché stiamo utilizzando un'origine di esempio che non richiede credenziali, selezionaNone
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. - 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.
- 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. - 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. - 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.
- Fai clic su Done.
- 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.
- Fai clic su Crea.
- 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
- Imposta il tuo ambiente CLICode Engine.
- Creare e utilizzare un progetto.
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.
-
Utilizzare il comando
job create
per creare il jobmyjob-repo
per fare riferimento a un'immagine creata dall'origine di buildhttps://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 directoryhelloworld
. Questo esempio di comando utilizza la strategiadockerfile
predefinita e la dimensione di buildmedium
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 comandojob 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 comandoibmcloud 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. -
(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.
-
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 lavoromyjob-repo
.ibmcloud ce jobrun submit --name myjobrun-repo --job myjob-repo
-
(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, eseguireibmcloud 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.