Distribuzione della tua applicazione dal codice sorgente locale con la CLI
Puoi distribuire la tua applicazione direttamente dal codice sorgente sulla tua workstation locale con la CLI IBM Cloud® Code Engine. Utilizza il comando app create per creare un'immagine dalla tua origine locale
e distribuisci la tua applicazione per fare riferimento a questa immagine generata.
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 quindi crea e distribuisce la tua applicazione per fare riferimento a questa immagine creata. Nota che puoi indicare come destinazione solo IBM Cloud Container Registry per le tue build locali. L'immagine di origine viene creata nello stesso
spazio nomi della tua immagine di creazione. Per questo scenario, è necessario fornire solo un nome per l'app e il percorso dell'origine locale. Per un elenco completo delle opzioni, consultare il comando ibmcloud ce app 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.
IBM Cloud® Container Registry è richiesto per questo scenario.
Prima di iniziare
- Imposta il tuo ambiente CLICode Engine.
- Creare e utilizzare un progetto.
Prima di lavorare con l'origine locale, verificare che l'origine si trovi in un'ubicazione accessibile sulla stazione di lavoro 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 -
Passare alla directory
CodeEngine\helloworld. -
Dalla directory
CodeEngine\helloworld, creare e distribuire l'appmyapp-local, che utilizza un'immagine creata dall'origineCodeEngine\helloworldsulla workstation locale. Questo comando crea e invia automaticamente l'immagine a uno spazio dei nomi Container Registry nel tuo account. Se non hai uno spazio dei nomi Container Registry esistente, Code Engine ne crea automaticamente uno per te.ibmcloud ce application create --name myapp-local --build-source ..indica che l'origine build si trova nella directory di lavoro corrente.Output di esempio
Creating application 'myapp-local'... Packaging files to upload from source path '.'... Submitting build run 'myapp-local-run-220414-171750199'... Creating image 'private.us.icr.io/ce--abcde-glxo4kabcde/app-myapp-local:220414-2117-rdaga'... Waiting for build run to complete... Build run status: 'Running' Build run completed successfully. Run 'ibmcloud ce buildrun get -n myapp-local-run-220414-171750199' to check the build run status. Waiting for application 'myapp-local' to become ready. Configuration 'myapp-local' is waiting for a Revision to become ready. Ingress has not yet been reconciled. Waiting for load balancer to be ready. Run 'ibmcloud ce application get -n myapp-local' to check the application status. OK https://myapp-local.glxo4kabcde.us-south.codeengine.appdomain.cloudL'output del comando
application createfornisce informazioni sull'avanzamento dell'esecuzione della build prima che l'app venga creata e distribuita.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
app createin questo esempio. Per ulteriori informazioni sul comando e le sue opzioni, consultare il comandoibmcloud ce app create.Descrizione del comando Opzione Descrizione --nameIl nome dell'applicazione. 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 63 caratteri o meno e può contenere lettere, numeri e trattini (-).
--build-sourceIl percorso della sorgente locale. -
Utilizza il comando
application getper visualizzare le informazioni sulla tua applicazione, incluse le informazioni sulla build.ibmcloud ce application get --name myapp-localOutput di esempio
[...] Name: myapp-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 URL: https://myapp-local.Sta.us-south.codeengine.appdomain.cloud Cluster Local URL: http://myapp-local.glxo4kabcde.svc.cluster.local Console URL: https://cloud.ibm.com/codeengine/project/us-south/01234567-abcd-abcd-abcd-abcdabcd1111/application/myapp-local/configuration Status Summary: Application deployed successfully Environment Variables: Type Name Value Literal CE_API_BASE_URL https://api.private.us-south.codeengine.cloud.ibm.com Literal CE_APP myapp Literal CE_DOMAIN us-south.codeengine.appdomain.cloud Literal CE_PROJECT_ID abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f Literal CE_REGION us-south Literal CE_SUBDOMAIN abcdabcdab Image: private.us.icr.io/ce--abcde-glxo4kabcde/app-myapp-local:220414-2010-sqsoj Resource Allocation: CPU: 1 Ephemeral Storage: 400M Memory: 4G Registry Secrets: ce-auto-icr-private-us-south Revisions: myapp-local-00001: Age: 23m Latest: true Traffic: 100% Image: private.us.icr.io/ce--abcde-glxo4kabcde/app-myapp-local:220414-2010-sqsoj (pinned to 86944c) Running Instances: 0 Runtime: Concurrency: 100 Maximum Scale: 10 Minimum Scale: 0 Timeout: 300 Build Information: Build Run Name: myapp-local-run-220414-161009244 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 myapp-local-run-220414-161009244' for details. [...]
Ora che la tua applicazione è creata e distribuita dal codice sorgente locale, puoi aggiornare l'applicazione per soddisfare le tue esigenze utilizzando il comando ibmcloud ce app update.
Per ulteriori informazioni sull'aggiornamento delle applicazioni, vedi Aggiornamento della tua app. Se vuoi aggiornare la tua origine da utilizzare con la tua applicazione, devi fornire
l'opzione --build-source nel comando application update.
Invece di creare la tua immagine dall'origine locale e distribuire la tua applicazione con un singolo comando, puoi scegliere di creare prima dall'origine locale prima di distribuire la tua applicazione. Consultare la sezione Creazione di una configurazione di build che estrae l'origine da una workstation locale.
Quando la tua applicazione viene distribuita dall'origine locale o dal codice di origine del repository dalla 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 la distribuzione dell'applicazione, è possibile accedere all'applicazione tramite il sito URL.
-
Puoi creare un' associazione dominio personalizzata e assegnarla alla tua applicazione. Per ulteriori informazioni sulla distribuzione delle applicazioni tra più regioni con un nome dominio personalizzato, vedi Configurazione di un'applicazione altamente disponibile.
-
Ora che la tua app è stata distribuita, prendi in considerazione la possibilità di rendere le tue app basate sugli eventi. Utilizzando le sottoscrizioni agli eventi, puoi attivare le tue applicazioni in base alle pianificazioni periodiche o impostare la tua applicazione per reagire agli eventi come i caricamenti di file o i messaggiKafka.
Dopo che la tua applicazione è stata distribuita, puoi aggiornare la tua applicazione distribuita e il suo codice di riferimento utilizzando uno qualsiasi dei seguenti modi, indipendentemente da come hai creato o precedentemente aggiornato la tua applicazione:
-
Se hai un'immagine del contenitore, secondo lo standard OCI(Open Container Initiative), devi fornire solo un riferimento all'immagine, che punta all'ubicazione del tuo registro del contenitore quando distribuisci la tua applicazione. Puoi distribuire la tua applicazione con una immagine in un registro pubblico o in un registro privato.
Se hai creato la tua applicazione utilizzando il comando
app createe hai specificato l'opzione--build-sourceper creare l'immagine del contenitore dall'origine locale o del repository e vuoi modificare la tua applicazione in modo che punti a un'altra immagine del contenitore, devi prima rimuovere l'associazione della build dalla tua applicazione. Ad esempio, eseguireibmcloud ce application update -n APP_NAME --build-clear. Dopo aver rimosso l'associazione della build dalla propria applicazione, è possibile aggiornare l'applicazione in modo che faccia riferimento a una diversa immagine. -
Se stai iniziando con il codice sorgente che risiede in un repository Git, puoi scegliere di lasciare che Code Engine si occupi della creazione dell'immagine dalla tua origine e della distribuzione dell'applicazione con una singola operazione. In questo scenario, Code Engine carica la tua immagine in IBM Cloud® Container Registry. Per ulteriori informazioni, vedi Distribuzione della tua applicazione dal codice sorgente del repository. Se vuoi più controllo sulla build della tua immagine, puoi scegliere di creare l'immagine con Code Engine prima di distribuire la tua applicazione.
-
Se stai iniziando con il codice sorgente che risiede su una workstation locale, puoi scegliere di consentire a Code Engine di creare l'immagine dalla tua origine e distribuire l'applicazione con un singolo comando della CLI. In questo scenario, Code Engine carica la tua immagine in IBM Cloud® Container Registry. Per ulteriori informazioni, vedi Distribuzione della tua applicazione dal codice di origine locale con la CLI. Se vuoi più controllo sulla build della tua immagine, puoi scegliere di creare l'immagine con Code Engine prima di distribuire la tua applicazione.
Ad esempio, potresti scegliere di consentire a Code Engine di gestire la creazione della tua origine locale mentre evolvi lo sviluppo della tua origine per l'applicazione. Quindi, una volta maturata l'immagine, puoi aggiornare l'applicazione distribuita per fare riferimento all'immagine specifica che desideri. È possibile ripetere questo processo in base alle necessità.
Quando distribuisci la tua applicazione aggiornata, viene scaricata e distribuita l'ultima versione della tua immagine del contenitore di riferimento, a meno che non venga specificata una tag per l'immagine. Se viene specificata una tag per l'immagine, l'immagine contrassegnata viene utilizzata per la distribuzione.
Cerchi altri esempi di codice? Controlla gli Esempi per il repository IBM Cloud Code Engine GitHub.