Distribuzione dei carichi di lavoro dell'app dalle immagini in IBM Cloud Container Registry

Distribuisci la tua app con Code Engine utilizzando l'immagine disponibile all'indirizzo IBM Cloud® Container Registry. Puoi creare un'app dalla console o con la CLI.

Prima di iniziare

Ti interessa configurare il tuo progetto in modo che tutti gli utenti possano archiviare e accedere alle immagini su Container Registry senza dover creare manualmente i segreti di registro? Con autorizzazioni sufficienti, è possibile configurare questo accesso al registro predefinito in base all'ubicazione (regione). Se non si dispone di autorizzazioni sufficienti per eseguire queste azioni, è possibile utilizzare questa pagina per comprendere le autorizzazioni richieste. Consultare Configurazione delle impostazioni a livello di progetto.

Distribuzione di un'applicazione che fa riferimento a un'immagine in Container Registry con la console

Distribuire un'applicazione che utilizza un'immagine presente su Container Registry tramite la console Code Engine.

Code Engine può eseguire automaticamente il pull delle immagini da uno spazio dei nomi Container Registry nell'account. Per eseguire il pull delle immagini da un account Container Registry diverso o da un account Docker Hub privato, vedi Distribuzione dei carichi di lavoro dell'applicazione dalle immagini in un registro privato.

  1. Apri la console Code Engine.
  2. Seleziona " Inizia a creare ".
  3. Seleziona un progetto dall'elenco dei progetti disponibili. È anche possibile crearne uno nuovo. È necessario disporre di un progetto selezionato per distribuire un'applicazione.
  4. Seleziona " Applicazione ".
  5. Inserisci un nome per l'applicazione; ad esempio, helloapp. Assegna alla tua applicazione un nome che sia univoco all'interno del progetto.
  6. Selezionare " Usa un'immagine container esistente " e fare clic su " Configura immagine ".
  7. Selezionare un'ubicazione del registro del contenitore, come IBM Registry Dallas.
  8. Selezionare Code Engine managed secret per Segreto registro. Poiché questo esempio utilizza un'immagine in un namespace Container Registry nel tuo account, Code Engine può creare e gestire automaticamente il segreto del registro per te.
  9. Seleziona uno spazio dei nomi esistente e il nome dell'immagine nel registro per l'applicazione Code Engine a cui fare riferimento. Ad esempio, seleziona mynamespace e seleziona l'immagine hello_repo in quel namespace.
  10. Selezionare un valore per Tag; ad esempio, latest.
  11. Fai clic su Done.
  12. Modifica le impostazioni di runtime o le variabili di ambiente per la tua applicazione. Per ulteriori informazioni su queste opzioni, consulta Opzioni per la visibilità dell'endpoint delle applicazioni e Opzioni per la distribuzione di un'applicazione.
  13. Fare clic su Crea per creare l'applicazione.
  14. Una volta modificato lo stato dell'applicazione in Pronto, è possibile verificare l'applicazione. Fare clic su Applicazione di test, quindi fare clic su Invia richiesta nel riquadro Applicazione di test. Per aprire l'applicazione in una pagina web, clicca su Applicazione URL.

Ora che hai distribuito la tua applicazione, puoi visualizzare le informazioni sulle revisioni dell'applicazione e qualsiasi istanza in esecuzione e i dettagli di configurazione.

Se vuoi aggiungere l'accesso al registro a una istanza Container Registry che non è presente nel tuo account, vedi Aggiunta dell'accesso a Container Registry.

Distribuzione di una applicazione con un'immagine in Container Registry con la CLI

Distribuire un'applicazione che utilizza un'immagine presente su IBM Cloud® Container Registry tramite la CLI con il ibmcloud ce app create comando. Per un elenco completo delle opzioni, consultare il comando ibmcloud ce app create.

Prima di iniziare

  1. Per aggiungere l'accesso a Container Registry, creare una chiave API IAM. Per creare una IBM Cloud Con la CLI, eseguire il comando 'iam api-key-create. Ad esempio, per creare una chiave API chiamata 'cliapikey con una descrizione di 'My CLI API key e salvarla in un file chiamato 'key_file, eseguire il seguente comando:

    ibmcloud iam api-key-create cliapikey -d "My CLI API key" --file key_file
    

    Se si sceglie di non salvare la chiave in un file, è necessario registrare la chiave API visualizzata quando la si crea. Non puoi richiamarla successivamente.

  2. Dopo aver creato la tua chiave API, aggiungi l'accesso al registro a Code Engine. Per aggiungere l'accesso a Container Registry con la CLI, utilizza il comando ibmcloud ce secret create --format registry per creare una parola segreta del registro. Ad esempio, il seguente comando crea l'accesso del Registro di sistema a un'istanza Container Registry denominata myregistry. Tenere presente che anche se le opzioni --server e --username sono specificate nel comando di esempio, il valore predefinito per l'opzione --server è us.icr.io e l'opzione --username è iamapikey quando il server è us.icr.io.

    ibmcloud ce secret create --format registry --name myregistry --server us.icr.io --username iamapikey --password APIKEY
    

    Output di esempio

    Creating registry secret 'myregistry'...
    OK
    
  3. Crea la tua applicazione e fai riferimento all'immagine hello_repo in Container Registry. Ad esempio, utilizza il comando ibmcloud ce app create per creare l'applicazione myhelloapp per fare riferimento a us.icr.io/mynamespace/hello_repo utilizzando le informazioni di accesso myregistry.

    ibmcloud ce app create --name myhelloapp --image us.icr.io/mynamespace/hello_repo --registry-secret myregistry
    

    Il formato del nome dell'immagine per questa applicazione è REGISTRY/NAMESPACE/REPOSITORY:TAG dove REGISTRY e TAG sono facoltativi. Se non viene specificato REGISTRY, il valore predefinito è docker.io. Se non viene specificato TAG, il valore predefinito è latest.

  4. Dopo che la tua app è stata distribuita, puoi accedervi. Per ottenere l' URL e della tua app, esegui ibmcloud ce app get --name myhelloapp --output url. Quando esegui il curl dell'applicazione myhelloapp, viene restituito Hello World.

    curl https://myhelloapp.abcdabcdhye.us-south.codeengine.appdomain.cloud
    

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? Dai un'occhiata agli esempi disponibili nel repository " IBM Cloud Code Engine " su GitHub.