Creazione del lavoro dal codice sorgente locale con la CLI
È possibile creare il proprio job direttamente dal codice sorgente sulla propria workstation locale utilizzando la CLI di IBM Cloud® Code Engine. Utilizza il comando job create per creare un'immagine dalla tua origine
locale e definire la configurazione per il tuo lavoro per fare riferimento a questa immagine creata.
Quando si inoltra una build che estrae il codice da una directory locale, il codice sorgente viene compresso in un file di archivio. Code Engine carica automaticamente l'immagine in uno spazio dei nomi IBM Cloud® Container Registry nel tuo account
e crea quindi il lavoro per fare riferimento a questa immagine creata. Nota che puoi indicare come destinazione solo IBM Cloud Container Registry per le tue build locali. Per questo scenario, è necessario fornire solo un nome per il lavoro e
il percorso dell'origine locale. Per un elenco completo delle opzioni, consultare il comando ibmcloud ce job create.
Per informazioni sulle autorizzazioni richieste per accedere ai registri delle immagini, consultare Impostazione delle autorizzazioni per i registri delle immagini.
È 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 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.
Per questo scenario è necessario il pacchetto " IBM Cloud® Container Registry ".
Prima di iniziare
- Imposta il tuo ambiente CLICode Engine.
- Creare e utilizzare un progetto.
- L'origine deve trovarsi in un'ubicazione accessibile sulla workstation locale.
Questo esempio utilizza gli esempi https://github.com/IBM/CodeEngine ; in particolare, l'esempio helloworld.
-
Scarica l'origine di esempio
https://github.com/IBM/CodeEnginesulla tua workstation locale con il seguente comando.git clone https://github.com/IBM/CodeEngine -
Passa alla directory
CodeEngine\helloworld. -
Dalla directory
CodeEngine\helloworld, creare il lavoromyjob-local, che utilizza un'immagine creata dall'origineCodeEngine\helloworldsulla workstation locale. Questo comando crea e invia automaticamente l'immagine a un namespace IBM Cloud Container Registry nel tuo account. Se non hai uno spazio dei nomi Container Registry esistente, Code Engine ne crea automaticamente uno per te. Aggiungendo l'opzione--wait, specifica che la creazione del lavoro attende il completamento della build dell'immagine.ibmcloud ce job create --name myjob-local --build-source . --wait.indica che l'origine build si trova nella directory di lavoro corrente.Output di esempio
Creating job 'myjob-local'... Packaging files to upload from source path '.'... Submitting build run 'myjob-local-run-220420-150457582'... Creating image 'private.us.icr.io/ce--abcde-glxo4kabcde/job-myjob-local'... Waiting for build run to complete... Build run status: 'Running' Build run completed successfully. Run 'ibmcloud ce buildrun get -n myjob-local-run-220420-150457582' to check the build run status. OKPoiché è stata specificata l'opzione
--wait, l'output del comandojob createfornisce informazioni sull'avanzamento dell'esecuzione della build prima della creazione del lavoro.In questo esempio, l'immagine creata viene caricata nello spazio dei nomi di
ce--abcde-glxo4kabcdein Container Registry.La seguente tabella riepiloga le opzioni utilizzate con il comando
job createin questo esempio. Per ulteriori informazioni sul comando e le sue opzioni, consultare il comandoibmcloud ce job create.Descrizione del comando Opzione Descrizione --nameIl 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-sourceIl percorso verso la fonte locale. --waitSpecifica di attendere il completamento della creazione dell'immagine prima di creare il lavoro. -
(Facoltativo) Utilizzare il comando
job getper visualizzare le informazioni sul lavoro, incluse le informazioni sulla build.ibmcloud ce job get --name myjob-localOutput di esempio
[...] Name: myjob-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 Image: private.us.icr.io/ce--abcde-glxo4kabcde/job-myjob-local 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-local-run-220420-150457582 Build Type: local Build Strategy: dockerfile-medium Timeout: 600 Source: . 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-local-run-220420-150457582' 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-localin base alla configurazione del lavoromyjob-local.ibmcloud ce jobrun submit --name myjobrun-local --job myjob-local -
(facoltativo) Visualizzare i dettagli dell'esecuzione del lavoro.
ibmcloud ce jobrun get --name myjobrun-localOutput 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-local Image: private.us.icr.io/ce--abcde-glxo4kabcde/job-myjob-local 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: 2m40s Instance Statuses: Succeeded: 1 Conditions: Type Status Last Probe Last Transition Pending True 2m44s 2m44s Running True 2m40s 2m40s Complete True 2m40s 2m40s Events: Type Reason Age Source Messages Normal Updated 2m41s (x3 over 2m45s) batch-job-controller Updated JobRun "myjobrun-local" Normal Completed 2m41s batch-job-controller JobRun completed successfully Instances: Name Running Status Restarts Age myjobrun-local-0-0 0/1 Succeeded 0 2m45s
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.
Invece di creare la tua immagine dall'origine locale e creare il lavoro con un unico comando, puoi scegliere di creare dall'origine locale prima prima di creare il tuo lavoro. Consultare la sezione Creazione di una configurazione di build che estrae l'origine da una workstation locale.
Quando il tuo lavoro viene creato dall'origine locale o dal codice sorgente del repository 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 createe hai specificato l'opzione--build-sourceper 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 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.
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? Dai un'occhiata agli esempi disponibili nel repository " IBM Cloud Code Engine " su GitHub.