Creazione di applicazioni utilizzando i pacchetti di build

Una creazione, o creazione di immagini, è un meccanismo che puoi usare per creare un'immagine contenitore dal tuo codice sorgente. Code Engine supporta la creazione da un pacchetto di build Dockerfile e Cloud Native.

Prima di iniziare

Tutti gli utenti Code Engine devono avere un account Pagamento a consumo. Le esercitazioni potrebbero comportare dei costi. Utilizzare lo stimatore dei costi per generare una stima dei costi basata sull'utilizzo previsto. Per ulteriori informazioni, vedi Prezzi diCode Engine.

Imposta accesso registro

Poiché l'output della build è un'immagine memorizzata in un registro contenitore, devi configurare l'accesso a un registro immagini per Code Engine. Per memorizzare un'immagine in Docker Hub, crea l'accesso al registro utilizzando il comando ibmcloud ce secret create --format registry. Nel seguente esempio, utilizza dockerhub come nome dell'accesso al registro e specifica il tuo ID hub Docker come nome utente. Per la password hub Docker, puoi specificare la tua password hub Docker o un token di accesso.

ibmcloud ce secret create --format registry --name dockerhub --server https://index.docker.io/v1/ --username username --password password

Output di esempio

Creating registry secret 'dockerhub'...
OK

Per ulteriori informazioni, vedi Aggiungi documentazione di accesso al registro.

Crea una build

Crea una build che contiene informazioni sul codice sorgente per la tua applicazione o il tuo lavoro. Le informazioni possono includere l'ubicazione e le informazioni di accesso per il lavoro o l'app.

Il comando ibmcloud ce build create non consente di creare un'immagine, ma crea la configurazione per creare un'immagine. Il comando ibmcloud ce buildrun submit fa riferimento alla configurazione di creazione per creare un'immagine. Le opzioni che vengono specificate nel comando build create o nel comando build update non vengono convalidate o utilizzate per creare un'immagine fino a quando non viene eseguito il comando buildrun submit. La configurazione di build abilita più build successive di un'immagine, ad esempio quando le modifiche vengono applicate al repository di origine.

Nel seguente esempio, per creare la configurazione di build, utilizzare il comando ibmcloud ce build create. Utilizzare tutorial-build come nome della creazione e specificare https://github.com/IBM/CodeEngine come ubicazione del codice origine e /s2i-buildpacks come cartella della directory di contesto che contiene l'origine. Utilizzare il segreto del Registro di sistema dockerhub creato precedentemente per l'accesso al Registro di sistema. Specificare buildpacks come strategia di build per compilare il codice sorgente e specificare small come dimensione di build.

ibmcloud ce build create --name tutorial-build --source https://github.com/IBM/CodeEngine --commit main --context-dir /s2i-buildpacks --registry-secret dockerhub --image docker.io/<your_docker_ID>/tutorial --size small --strategy buildpacks

Output di esempio

Creating build 'tutorial-build'...
OK

L'opzione size specifica la dimensione per la build, che determina la quantità di risorse utilizzate. I valori validi sono small, medium, large, xlarge e xxlarge. size riflette i requisiti di build per il tuo codice sorgente per la tua applicazione o il tuo lavoro. Se la creazione non riesce a causa della mancanza di memoria o di spazio su disco, o non è abbastanza veloce, provare a passare a una dimensione maggiore. Una dimensione di build maggiore significa anche che più memoria e core CPU vengono assegnati al processo di build. L'aumento di questa dimensione può probabilmente accelerare il processo di creazione, ma questa azione aumenta anche il costo. Per ulteriori informazioni sulle build, consultare i suggerimenti per la risoluzione dei problemi.

Inoltra un'esecuzione di build

Ora che la configurazione di build è stata creata, è possibile eseguire una build basata su quella configurazione di build utilizzando il comando ibmcloud ce buildrun submit. Nel seguente esempio, fare riferimento alla configurazione di build tutorial-build e inoltrare l'esecuzione della build. Il sistema genera un nome di esecuzione build univoco. Facoltativamente, è possibile fornire un nome per l'esecuzione della build utilizzando l'opzione --name, che può essere utile poiché il nome dell'esecuzione della build è richiesto per ottenere i dettagli dell'esecuzione della build. In questo esempio, il sistema genera automaticamente il nome di esecuzione build.

ibmcloud ce buildrun submit --build tutorial-build

Output di esempio

Submitting build run 'tutorial-build-run-851026-090000000'...
Run 'ibmcloud ce buildrun get -n tutorial-build-run-851026-090000000' to check the build run status.
OK

Per controllare lo stato dell'esecuzione della build, utilizzare il comando buildrun get ibmcloud ce buildrun get per visualizzarne i dettagli.

ibmcloud ce buildrun get --name tutorial-build-run-851026-090000000

Output di esempio

Getting build run 'tutorial-build-run-851026-090000000'...
[...]
OK

Name:          tutorial-build-run-851026-090000000
ID:            abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f
Project Name:  myproject
Project ID:    01234567-abcd-abcd-abcd-abcdabcd1111
Age:           3m42s  
Created:       2021-03-14T14:31:21-05:00  

Summary:  Succeeded  
Status:   Succeeded  
Reason:   Succeeded  

La build è completa quando lo stato è Succeeded.

Se si verifica un problema con l'esecuzione della build, utilizzare il comando ibmcloud ce buildrun logs per visualizzare i log relativi all'esecuzione della build.

ibmcloud ce buildrun logs --buildrun tutorial-build-run-851026-090000000

Output di esempio

Getting build run 'tutorial-build-run-851026-090000000'...
Getting instances of build run 'tutorial-build-run-851026-090000000'...
Getting logs for build run 'tutorial-build-run-851026-090000000'...
OK

tutorial-build-run-851026-090000000-7vlrw-pod-c9t6g/step-git-source-source-7tbwh:
{"level":"info","ts":1610378702.42616,"caller":"git/git.go:165","msg":"Successfully cloned https://github.com/IBM/CodeEngine @ 6b66f2bc3e1277c2e6475608a9c50335712116e0 (grafted,  HEAD, origin/main) in path /workspace/source"}
{"level":"info","ts":1610378703.5453625,"caller":"git/git.go:203","msg":"Successfully initialized and updated submodules in path /workspace/source"}
[...]

L'immagine del contenitore è stata creata correttamente dal codice sorgente utilizzando la strategia di creazione dei pacchetti di build!

Utilizza l'immagine del contenitore

Ora che la tua immagine del contenitore è stata creata e ne è stato eseguito il push all'ubicazione di registro del contenitore configurata, puoi distribuire l'immagine in Code Engine. Ad esempio, puoi creare un'applicazione Code Engine che utilizza l'immagine creata.

ibmcloud ce application create --name tutorial-app --image <your_docker_ID>/tutorial

Output di esempio

Creating application 'tutorial-app'...
[...]

Passi successivi per i pacchetti di build

Per ulteriori informazioni, vedi Distribuzione delle applicazioni.

Il tuo progetto di codice sorgente utilizza Dockerfile? Segui la stessa procedura, ma specifica la strategia di creazione Dockerfile per creare un'immagine per la tua applicazione o il tuo lavoro. Per ulteriori informazioni su Dockerfile, vedi Writing a Dockerfile for Code Engine.

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