2013-05-10 11 views
7

Ich weiß, dass ein Openshift git push origin master lassen Sie die Anwendung auf die neue Version erneut bereitstellen.So implementieren Sie eine Tomcat 7-Anwendung auf Openshift erneut

Aber meine Situation ist, dass meine Tomcat-Anwendung von einem anderen Sub-Modul Maven-Projekt abhängt, und sie sind beide Snapshot.

Sobald seine Untermodul Projektänderungen (die Tomcat-Anwendung gleich bleibt), wird die git push origin master nicht (Everything up-to-date) arbeitet, und natürlich wird Openshift meine Anwendung nicht erneut bereitstellen, was bedeutet, dass es nicht das ist zu erneuern neueste Sub-Modul Snapshot-Artefakt für mich.

Also, wie um dieses Problem zu lösen? Ich habe versucht rhc restart und rhc reload, aber sie funktionieren nicht. Gibt es einen Befehl wie rhc redeploy?

+0

'git push origin master -f' verwenden? – eis

+0

Es funktioniert nicht. Ich denke '' 'git push --force''' wird verwendet, um den Quellcode auf Repo zu überschreiben, der kein Vorfahre des lokalen Verweises ist. – rAy

+0

@rAy: Das ist korrekt, und OpenShift löst nur aus, wenn eine andere Commit-Datei als die bereits vorhandene Push-Operation gesendet wird. – Flimm

Antwort

1

Sind Sie sicher, dass Sie die letzten Änderungen am Submodul übernommen und festgeschrieben haben? Was wahrscheinlich passiert, ist, dass der Verweis auf das gewünschte Submodul-Commit nicht aktualisiert wird, also obwohl das Submodul sich geändert hat, weiß Ihr Projekt nicht wirklich darüber. Ich glaube, git submodule status sollte Ihnen den Commit zeigen, von dem Ihr Hauptprojekt derzeit weiß.

Um diese Referenz zu aktualisieren, folgen Sie these directions.

[main]$ cd ./subm 
[subm]$ git pull origin/master # or fetch then merge 
[subm]$ cd .. 
[main]$ git commit ./subm -m "Updated submodule reference" 

Wenn Sie tatsächlich begangenen Änderungen im letzten Schritt, dann sollten sie entsprechend aktualisieren Openshift (seit dieser Zeit gab es Änderungen an der git Repo).

+0

Ich denke, das ist eigentlich die richtige Antwort auf die Frage des OP. +1 –

4

Sie können die Bereitstellungsschritte mit ssh'ing zu Ihrer OpenShift-Anwendung starten. Überprüfen Sie Ihre SSH-Linie von https://openshift.redhat.com/app/console/applications/ -> Klicken Sie auf Ihre Anwendung und dann "Möchten Sie sich bei Ihrer Anwendung anmelden?". Überprüfen Sie https://www.openshift.com/developers/remote-access für detaillierte Hilfe (danke RustyTheBoyRobot).

Einmal laufen:

gear deploy 
+0

Ihr Link ist jetzt tot. Ist das ähnlich wie ursprünglich? https://www.openshift.com/developers/remote-access – RustyTheBoyRobot

+0

Ich denke, "Getriebe" ist die geeignete binäre, stattdessen jetzt zu laufen. Die Schritte könnten also 'rhc ssh -a

8

Sie

rhc app deploy HEAD -a <appname> 

ausführen können, wenn Sie die Kommandozeilen-Tools

Verwandte Themen