2016-11-23 2 views
1

Ich versuche, eine Knoten-Anwendung auf Bluemix mit dem Befehl drückenWie push leere Verzeichnisse mit cf Push in Bluemix?

cf push <APP NAME> -c "node app.js" 

Der Knoten App geschoben hat einige leere verschachtelte Verzeichnisse.

Die App verfügt über einen Initialisierungscode, der die Existenz dieser verschachtelten Verzeichnisse erfordert. Sie verwendet sie zum Kopieren und Generieren von Dateien in der Laufzeitumgebung.

Problem:

Wenn ich die app drücken, werden die leeren Verzeichnisse nicht [nur andere Dateien und Verzeichnisse, die nicht leer sind, werden geschoben] gedrückt und somit, wenn die Anwendung es zu lokalisieren versucht, es nicht mit

Error: ENOENT No such file or directory error.

die Abhilfe ist eine zufällige Datei zu jedem Verzeichnis hinzuzufügen, [so dass sie nicht mehr leer sind] und dann geht es weiter zum Bluemix (von Cloud Foundry) geschoben.

Erwartung:

Wie die leeren Verzeichnisse drücken, während eine Anwendung auf die Bluemix drängt? Diese Verzeichnisse sind zunächst leer, werden aber später zum Generieren und Speichern von Dateien oder Dokumenten verwendet, wenn die App in Bluemix ausgeführt wird.

+0

Bitte beachten Sie, dass die Verwendung lokaler Dateien nicht empfohlen wird. Wenn Ihre App abstürzt oder neu gestartet werden muss, sind diese Dateien verschwunden. –

+0

Zustimmen. Ich benötige diese Option, wenn die nodebb-Anwendung zu Bluemix verschoben wird, erstellt sie eine temporäre Initialisierungsdatei an diesem Ort, während sie läuft [bin nicht sicher über den Zweck]. Wenn es den Ort nicht findet, gibt es RR 25/11 04:27 [29] - Fehler: Fehler: ENOENT: keine solche Datei oder Verzeichnis, scandir '/ home/vcap/app/öffentliche/uploads/Sounds'. Also muss ich öffentliche Ordner pushen, wenn ich nach dem Build den nodebb-Anwendungscode pusse. Da jedoch der Öffentliche Ordner und alle zugehörigen Unterordner leer waren, wurden sie nicht mit cf push hinzugefügt. –

+0

Wie ich in meinem vorherigen Kommentar erwähnt habe, werden die Verzeichnisse nur für die temporäre Speicherung während der Laufzeit verwendet, wie es mir scheint. Aber ich werde diesen Tipp beachten. Vielen Dank. –

Antwort

4

Wenn Sie Ressourcen haben, die beim Drücken ignoriert werden und nicht ignoriert werden sollen, erstellen Sie eine .cfignore Datei und listen sie dort mit einer auf! zu Beginn ihrer Linien:

intermediateFileFolderToIgnore/ !tempFolderToNotIgnore/

können Sie die syntax for cfignore/gitignore here finden.

+0

Vielen Dank. Es hat das Problem für mich gelöst. –

+0

Als Referenz: Ich musste öffentliche Ordner [mit mehreren Unterordnern, aber alle leer]. Also habe ich .cfignore Datei mit der Zeile!/Public erstellt. Dann drücken Sie die Anwendung. Der öffentliche Ordner wurde an die VM übertragen, obwohl sie leer war. –

Verwandte Themen