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

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.

  1. Scarica l'origine di esempio https://github.com/IBM/CodeEngine sulla tua workstation locale con il seguente comando.

    git clone https://github.com/IBM/CodeEngine
    
  2. Passare alla directory CodeEngine\helloworld.

  3. Dalla directory CodeEngine\helloworld, creare e distribuire l'app myapp-local, che utilizza un'immagine creata dall'origine CodeEngine\helloworld sulla 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.cloud
    

    L'output del comando application create fornisce 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-glxo4kabcde in Container Registry.

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

    Descrizione del comando
    Opzione Descrizione
    --name

    Il 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-source Il percorso della sorgente locale.
  4. Utilizza il comando application get per visualizzare le informazioni sulla tua applicazione, incluse le informazioni sulla build.

    ibmcloud ce application get --name myapp-local
    

    Output 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 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 create e hai specificato l'opzione --build-source per 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, eseguire ibmcloud 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.