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
- Konfigurieren Sie die Umgebung der Code Engine-Befehlszeilenschnittstelle.
- Erstellen Sie ein Projekt und arbeiten Sie damit.
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
.
-
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
-
Wechseln Sie in das Verzeichnis
CodeEngine\helloworld
. -
Erstellen und implementieren Sie im Verzeichnis
CodeEngine\helloworld
die Appmyapp-local
, die ein Image verwendet, das aus derCodeEngine\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 Befehlibmcloud 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. -
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, greifen Sie über eine URL auf Ihre App zu.
-
Sie können eine angepasste Domänenzuordnung erstellen und sie Ihrer App zuweisen. Weitere Informationen zum Bereitstellen von Apps in mehreren Regionen mit einem angepassten Domänennamen finden Sie unter Hoch verfügbare Anwendung konfigurieren.
-
Jetzt, wo Ihre Anwendung bereitgestellt ist, sollten Sie in Erwägung ziehen, Ihre Anwendungen ereignisgesteuert zu machen. Mithilfe von Ereignissubskriptionen können Sie Ihre Apps durch regelmäßige Zeitpläne auslösen oder festlegen, dass Ihre App auf Ereignisse wie Dateiuploads oder Kafka-Nachrichten reagiert.
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 beispielsweiseibmcloud 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.