CloudFoundry verwendet die Datei manifest.yml im Stammverzeichnis des Verzeichnisses. Diese Datei wird von CF übernommen, wenn Sie die Anwendung drücken.
Dies ist nicht korrekt. Der cf cli wird eine manifest.yml
Datei im aktuellen Verzeichnis aufnehmen, falls sie existiert. Das ist der Standardspeicherort. Sie können auch einen Standort mit cf push -f path/to/manifest.yml
angeben.
http://docs.cloudfoundry.org/devguide/deploy-apps/manifest.html#find-manifest
Ist es mir möglich, diese manifest.yml extern zu passieren?
Dies ist der einzige Weg, dies zu tun. Wenn Sie keinen manifest.yml
in die WAR-Datei einfügen möchten, lassen Sie Ihren Benutzer unzip
ausführen und extrahieren Sie die Datei. Das cf
CLI wird nicht in Ihrer WAR-Datei nach manifest.yml
suchen. Es kann möglicherweise nicht einmal Ihre WAR-Datei ohne den Eintrag path
von manifest.yml
finden.
Unterstützt CF die Übergabe einer manifest.yml, die sich außerhalb der WAR-Datei befindet?
Die Plattform bietet keine Funktionalität zum Freigeben von manifest.yml-Dateien. Wie Sie dies zu Ihrem Kunden bringen, bleibt Ihnen überlassen.
Wie in den obigen Kommentaren erwähnt, möchten Sie wahrscheinlich eine Vorlage eines funktionalen manifest.yml
an Ihren Kunden versenden oder Anweisungen geben, wie der Kunde eine manifest.yml
erstellen würde. Es wird sich wahrscheinlich in der Umgebung des Kunden unterscheiden. Zum Beispiel könnten sie unterschiedliche Host-&-Domainnamen wünschen oder sie könnten verschiedene Dienste binden.
Eine andere Option wäre ein Deployment-Skript zu versenden. Das Bereitstellungsskript ist zwar etwas komplizierter, könnte aber etwas intelligenter sein, da es unter Verwendung von cf
Informationen abfragen und weitere Dinge automatisch einrichten könnte. Benötigt Ihre App beispielsweise einen Dienst? Ein Bereitstellungsskript zum automatischen Erstellen, das mit einer manifest.yml
-Datei nicht möglich ist (es kann nur vorhandene Dienste binden).
Hoffe, dass hilft!
Nicht sicher, was Sie meinen, "übergeben Sie die Manifest-Datei extern." Könnten Sie Ihrem Kunden nicht eine WAR-Datei plus eine Art Vorlage Ihres Manifests schicken, die den Kunden auffordert, einfach Dinge einzugeben, die für seine Umgebung spezifisch sind, z. Referenzen? –
Das Manifest ist Teil der WAR-Datei, oder? Also, wenn ich eine WAR-Datei an den Kunden schicke und sie etwas (z. B. Anmeldeinformationen) in der manifest.yml ändern müssen ... wie werden sie es tun? Extrahiere den WAR, ändere das Manifest.Yml, und verpacken Sie es wieder? das scheint aus Sicht des Code-Versands sehr ineffizient zu sein. – Anthony
Hier ist ein Szenario: Meine App verwendet einen Webservice von Drittanbietern und benötigt daher eine URL für diesen Webservice. Ich übergebe den Wert dieser URL als benutzerdefinierte Umgebungsvariable in 'manifest.yml'. Ich verpacke die Anwendung und sende eine Datei (die WAR-Datei) an den Client. Auf der Kundenseite ist die URL der Drittanbieter-App etwas anders. Was macht der Kunde? Oder geht CF davon aus, dass es meine Aufgabe als Anwendungsentwickler ist, mit Produktionswerten zu liefern? Externalisierung dieser Dateitypen ist gängige Praxis. – Anthony