IBM Cloud Docs
App aus lokalem Quellcode über die Befehlszeilenschnittstelle bereitstellen

App aus lokalem Quellcode über die Befehlszeilenschnittstelle bereitstellen

Sie können Ihre Anwendung direkt aus dem Quellcode auf Ihrer lokalen Workstation über die IBM Cloud® Code Engine-CLI implementieren. Erstellen Sie mit dem Befehl app create ein Image aus Ihrer lokalen Quelle und implementieren Sie Ihre Anwendung, um auf dieses erstellte Image zu verweisen.

Wenn Sie einen Build übergeben, der Code aus einem lokalen Verzeichnis extrahiert, wird Ihr Quellcode in eine Archivdatei gepackt. Code Engine lädt das Image automatisch in einen IBM Cloud® Container Registry-Namensbereich in Ihrem Konto hoch, erstellt anschließend Ihre App und stellt sie bereit, um auf dieses erstellte Image zu verweisen. Beachten Sie, dass Sie IBM Cloud Container Registry nur für Ihre lokalen Builds verwenden können. Das Quellenimage wird in demselben Namensbereich erstellt wie Ihr Build-Image. Bei diesem Szenario müssen Sie nur einen Namen für die App und den Pfad zur lokalen Quelle angeben. Eine umfassende Liste der Optionen enthält der Abschnitt über den Befehl ibmcloud ce app create.

Informationen zu den erforderlichen Zugriffsberechtigungen bezüglich Image-Registrys finden Sie unter Berechtigungen für Image-Registrys einrichten.

Sie können bestimmte Dateimuster aus Ihrem Quellcode ignorieren, indem Sie die Datei .ceignore verwenden, die sich ähnlich wie eine .gitignore-Datei verhält. Einträge für eine .ceignore-Datei bezüglich einer Node.js-Anwendung können beispielsweise node_modules und .npm enthalten. Weitere Beispiele für zu ignorierende Dateimuster finden Sie im GitHub.gitignore.

Für dieses Szenario ist IBM Cloud® Container Registry erforderlich.

Vorbereitende Schritte

Bevor Sie mit der lokalen Quelle arbeiten, stellen Sie sicher, dass sich Ihre Quelle an einer zugänglichen Position auf Ihrer lokalen Workstation befindet.

In diesem Beispiel werden https://github.com/IBM/CodeEngine-Beispiele verwendet, insbesondere das Beispiel helloworld.

  1. Laden Sie die Beispielquelle https://github.com/IBM/CodeEngine mit dem folgenden Befehl auf Ihre lokale Workstation herunter.

    git clone https://github.com/IBM/CodeEngine
    
  2. Wechseln Sie in das Verzeichnis CodeEngine\helloworld.

  3. Erstellen und implementieren Sie im Verzeichnis CodeEngine\helloworld die App myapp-local, die ein Image verwendet, das aus der CodeEngine\helloworld-Quelle auf Ihrer lokalen Workstation erstellt wurde. Dieser Befehl erstellt und überträgt das Image automatisch an einen Container Registry-Namensbereich in Ihrem Konto. Wenn Sie nicht über einen Container Registry-Namensbereich verfügen, erstellt Code Engine diesen automatisch für Sie.

    ibmcloud ce application create --name myapp-local --build-source .
    

    . gibt an, dass sich die Build-Quelle im aktuellen Arbeitsverzeichnis befindet.

    Beispielausgabe

    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
    

    Beachten Sie, dass die Ausgabe des application create Informationen über den Verlauf des Build-Laufs liefert, bevor die Anwendung erstellt und bereitgestellt wird.

    In diesem Beispiel wird das erstellte Image in den Namensbereich ce--abcde-glxo4kabcde in Container Registry hochgeladen.

    Die folgende Tabelle vermittelt Ihnen einen Überblick über die Optionen, die in diesem Beispiel beim Befehl app create verwendet werden. Weitere Informationen zum Befehl und den zugehörigen Optionen finden Sie im Abschnitt über den Befehl ibmcloud ce app create.

    Befehlsbeschreibung
    Option Beschreibung
    --name

    Der Name der Anwendung. Verwenden Sie einen Namen, der innerhalb des Projekts eindeutig ist. Dieser Wert ist erforderlich.

    • Der Name muss mit einem Kleinbuchstaben beginnen.
    • Der Name muss mit einem alphanumerischen Zeichen enden.
    • Der Name darf maximal 63 Zeichen lang sein und muss Buchstaben, Ziffern und Bindestriche (-) enthalten.
    --build-source Der Pfad zur lokalen Quelle.
  4. Mit dem Befehl application get können Sie Informationen zu Ihrer App anzeigen, einschließlich Informationen zum Build.

    ibmcloud ce application get --name myapp-local
    

    Beispielausgabe

    [...]
    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.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.
    [...]
    

Nachdem Ihre App erstellt und über lokalen Quellcode bereitgestellt wurde, können Sie die App mit dem Befehl ibmcloud ce app update aktualisieren, um sie an Ihre Anforderungen anzupassen. Weitere Informationen zum Aktualisieren von Apps finden Sie unter App aktualisieren. Wenn Sie Ihre Quelle für die Verwendung mit Ihrer App aktualisieren möchten, müssen Sie die Option --build-source im Befehl application update angeben.

Anstatt Ihr Image aus einer lokalen Quelle zu erstellen und Ihre App mit nur einem einzigen Befehl bereitzustellen, haben Sie die Möglichkeit, Ihre App zuerst aus einer lokalen Quelle zu erstellen, bevor Sie sie bereitstellen. Siehe Buildkonfiguration erstellen, die Quelle von einer lokalen Workstation extrahiert.

Wenn Ihre App aus der lokalen Quelle oder aus Repository-Quellcode über die Befehlszeilenschnittstelle bereitgestellt wird, basiert die resultierende Buildausführung nicht auf einer Buildkonfiguration. Buildausführungen, die abgeschlossen werden, werden letztendlich automatisch gelöscht. Buildausführungen, die nicht auf einer Buildkonfiguration basieren, werden nach einer Stunde gelöscht, wenn die Buildausführung erfolgreich war. Wenn die Buildausführung nicht erfolgreich ist, wird sie nach 24 Stunden gelöscht. Sie können Informationen zu dieser Buildausführung nur mit der Befehlszeilenschnittstelle anzeigen. Sie können diese Buildausführung nicht in der Konsole anzeigen.

Nächste Schritte

Nachdem Ihre App bereitgestellt wurde, können Sie Ihre bereitgestellte App aktualisieren und den zugehörigen referenzierten Code auf irgendeine der folgenden Arten verwenden, unabhängig davon, wie Sie Ihre App erstellt oder zuvor aktualisiert haben:

  • Wenn Sie über ein Container-Image nach dem Standard der Open Container Initiative(OCI) verfügen, müssen Sie nur einen Verweis auf das Image angeben, der auf den Speicherort Ihrer Container-Registry verweist, wenn Sie Ihre Anwendung bereitstellen. Sie können Ihre App mit einem Image in einer öffentlichen Registry oder privaten Registry bereitstellen.

    Wenn Sie Ihre App mit dem Befehl app create erstellt und die Option --build-source angegeben haben, um das Container-Image aus einer lokalen Quelle oder einer Repository-Quelle zu erstellen, und Sie Ihre App so ändern wollen, dass sie auf ein anderes Container-Image verweist, müssen Sie zuerst die Zuordnung des Builds aus Ihrer App entfernen. Führen Sie beispielsweise ibmcloud ce application update -n APP_NAME --build-clear aus. Nachdem Sie die Zuordnung des Builds aus Ihrer App entfernt haben, können Sie die App aktualisieren, sodass sie auf ein anderes Image verweist.

  • Wenn Sie mit Quellcode beginnen, der sich in einem Git-Repository befindet, können Sie es Code Engine überlassen, das Image aus Ihrer Quelle zu erstellen und die App mit einer einzigen Operation bereitzustellen. In diesem Szenario lädt Code Engine Ihr Image in IBM Cloud® Container Registry hoch. Weitere Informationen finden Sie unter App aus Repository-Quellcode bereitstellen. Wenn Sie mehr Kontrolle über den Build Ihres Image wünschen, können Sie das Image mit Code Engine erstellen, bevor Sie Ihre App implementieren.

  • Wenn Sie mit Quellcode beginnen, der sich auf einer lokalen Workstation befindet, können Sie es Code Engine überlassen, das Image aus Ihrer Quelle zu erstellen und die App mit einem einzelnen CLI-Befehl bereitzustellen. In diesem Szenario lädt Code Engine Ihr Image in IBM Cloud® Container Registry hoch. Weitere Informationen finden Sie unter App aus lokalem Quellcode über die CLI bereitstellen. Wenn Sie mehr Kontrolle über den Build Ihres Image wünschen, können Sie das Image mit Code Engine erstellen, bevor Sie Ihre App implementieren.

    Sie könnten beispielsweise festlegen, dass Code Engine den Build Ihrer lokalen Quelle handhaben soll, während Sie Ihre Quelle für die App weiterentwickeln. Nachdem das Image ausgereift ist, können Sie die bereitgestellte App aktualisieren, um auf das gewünschte Image zu verweisen. Sie können diesen Prozess nach Bedarf wiederholen.

Wenn Sie Ihre aktualisierte App bereitstellen, wird die neueste Version Ihres referenzierten Container-Image heruntergeladen und bereitgestellt, sofern kein Tag für das Image angegeben ist. Wenn ein Tag für das Image angegeben wird, wird das mit Tags versehene Image für die Implementierung verwendet.

Benötigen Sie weitere Codebeispiele? Sehen Sie sich die Beispiele für IBM Cloud Code Engine GitHub repoan.