Zum Inhalt springen

Ihre App auf Cloud Foundry pushen

Zuletzt aktualisiert am

In diesem Dokument zeigen wir Ihnen, wie Sie Ihre Anwendung von Ihrem lokalen System zu STACKIT Cloud Foundry pushen und dort bereitstellen. Nach diesem Dokument können Sie Ihre gehostete Anwendung über eine STACKIT Cloud Foundry Wildcard-Domain aufrufen.

In diesem Tab erfahren Sie, wie Sie mit der Cloud Foundry CLI:

Sich anmelden und die richtige Org und den richtigen Space auswählen

Abschnitt betitelt „Sich anmelden und die richtige Org und den richtigen Space auswählen“

Melden Sie sich mit der Cloud Foundry CLI an der passenden Cloud Foundry API an und setzen Sie die Organisation und den Space, in den Sie Ihre App pushen möchten. Wie das geht, erfahren Sie in der Dokumentation Mit Cloud Foundry interagieren.

Wenn Sie Ihre Anwendung als Quellcode (zum Beispiel statische Dateien) oder als Build-Artefakt (zum Beispiel JAR-Datei) nach Cloud Foundry pushen möchten, müssen Sie sich im Terminal im Verzeichnis Ihres Anwendungscodes befinden, zum Beispiel:

Terminal-Fenster
cd myProjects/appcloudExample

Wenn Sie Ihre Anwendung bereits containerisiert pushen möchten, zum Beispiel als Docker-Image, muss das Image vorher gebaut sein. Den Push-Prozess können Sie dann von jedem Ort starten, sofern Sie die Referenz zu Ihrer (lokalen) Container Registry angeben.

Sobald Sie in der Cloud Foundry CLI angemeldet sind, Org und Space gesetzt haben und Ihr Quellcode/Build-Artefakt/Container verfügbar ist, reicht in der Regel ein einfacher cf push-Befehl wie dieser:

Terminal-Fenster
cf push myFirstApp -p build/myfirstapp.jar --random-route --var TEST_ENV=TRUE

In diesem Beispiel sehen Sie mehrere Argumente für das Deployment Ihrer Anwendung. Sie können den Push-Befehl mit verschiedenen Optionen erweitern:

Terminal-Fenster
cf push APP_NAME [-b BUILDPACK_NAME]

Wenn Sie eine Anwendung mit einem Cloud Native Buildpack pushen möchten, müssen Sie zusätzlich den Lifecycle cnb setzen und auf das Buildpack verweisen. Hier ein Beispiel mit paketobuildpacks/nodejs:

Terminal-Fenster
cf push APP_NAME --lifecycle cnb --buildpack docker://docker.io/paketobuildpacks/nodejs

Wenn Sie ein vorhandenes Docker-Image pushen möchten:

Terminal-Fenster
cf push APP_NAME --docker-image [REGISTRY_HOST:PORT/]IMAGE[:TAG] [--docker-username USERNAME]

In beiden Fällen müssen Sie den Parameter APP_NAME setzen. Er definiert den Namen Ihrer Anwendung, mit dem Sie die Anwendung innerhalb Ihres Spaces identifizieren. Dieser Name muss innerhalb eines Spaces eindeutig sein.

Beim Push eines Docker-Images müssen Sie das Image in der gewünschten Registry mit dem Argument --docker-image [REGISTRY_HOST:PORT/]IMAGE[:TAG] referenzieren.

Beim Push eines Build-Artefakts ist es zusätzlich empfehlenswert, das Argument -p PATH zu setzen, damit der genaü Pfad zum Artefakt angegeben ist.

Da Cloud Foundry die Route Ihrer Anwendung aus dem Anwendungsnamen und der Wildcard-Domain erzeugt, empfiehlt es sich außerdem, mit --random-route eine zufällige Route zu setzen. Dadurch wird ein zufälliger Suffix hinzugefügt. Ohne diesen Zusatz kann es zu Konflikten kommen, wenn die Kombination aus App-Name und Wildcard-Domain bereits vergeben ist.

Sie können Ihren Push-Befehl mit weiteren Optionen ergänzen. Details dazu finden Sie im Cloud Foundry CLI Reference Guide für den push-Befehl.

Alternativ können Sie auch eine Manifest-Datei verwenden, um die Anwendungskonfiguration als Code abzulegen. Mehr dazu finden Sie unter Wie man Manifest-Dateien nutzt.

Nachdem Sie den Befehl cf push ausgeführt haben, erstellt die Cloud Foundry CLI Ihre Anwendung im Ziel-Space mit der über Argumente oder manifest.yml übergebenen Konfiguration.

Anschliessend wird das Artefakt hochgeladen und, falls es nicht bereits containerisiert ist, mit einem passenden Buildpack containerisiert (siehe Container und Buildpacks). Danach wird das resultierende Droplet für den Start in Ihrem Cloud Foundry Space vorbereitet.

Diesen gesamten Ablauf können Sie in der Ausgabe der laufenden CF CLI im Terminal verfolgen. Sobald der Push erfolgreich ist, erhalten Sie Informationen zu Ihrer gepushten Anwendung wie im folgenden Beispiel:

Name: spring-music
required state: started
Routes: spring-music-responsible-jackal-jh.apps.01.cf.eu01.stackit.cloud
Last Upload: Wed 12 Jan 14:45:33 CET 2022
Stack: cflinuxfs3
Buildpacks:
Name Version detect output buildpack name
java_buildpack v4.42-git@github.com:cloudfoundry/java-buildpack.git#91äfacf java java
Type: web
sidecars:
Instances: 1/1
Memory Usage: 1024M
Execution: JAVA_OPTS="..."
State since CPU RAM Memory Details
#0 active 2022-01-12T13:46:05Z 0.0% 272.2M von 1G 201.5M von 512M

Hier sehen Sie alle wichtigen Details Ihrer Anwendung: vom Namen zur Identifikation über die zugewiesenen Routen bis zum Laufzeitstatus der Container.

Wenn Sie nun die in dieser Übersicht angezeigte Route in Ihren Browser kopieren, können Sie Ihre Anwendung aufrufen. Glückwunsch: Sie haben erfolgreich eine Anwendung auf Cloud Foundry gehostet.