Frage

Ich bin auf der Suche nach Möglichkeiten, eine Ruby on Rails-Anwendung (läuft auf JRuby) auf eine Tomcat-Instanz zum Testen bereitstellen.

Die Kater-Instanz wird auf einem Solaris-Server ausgeführt wird, die ich SSH kann. Ich habe bei Verwendung von Capistrano sah, aber es scheint nicht viel da draußen zu sein, um es zu benutzen, um Tomcat einsetzen, oder sogar darüber unter JRuby läuft, und ich halte Bugs in Capistrano aufgrund der Fenster / JRuby Umgebung schlagen mein PC läuft (ja, es ist Corporate - meine Wahl nicht, aber ich habe mit ihm zu leben bekam).

Ich verwende warble die WAR-Datei zu erstellen, und die App entfaltet und läuft gut, wenn ich kopieren Sie es manuell auf und verteilen sie. Ich bin etwas einfacher und automatisierte will es tatsächlich erhalten.

Wer das schon mal gemacht? Dokumentation im Web scheint ziemlich dünn.

War es hilfreich?

Lösung

Ich habe nicht viel Erfahrung auf diesem, so dass ich weiß nicht, ob ich Ihnen den besten Weg geben kann, aber wenn Capistrano nicht funktioniert, und Sie können eine separate MRI nur laufen sie nicht haben installieren Sie haben nur wenige Alternativen übrig:

Versuchen Ebene Rake laufen und Ihr eigenes Implementierungsziel schreiben: http://www.gra2.com/article. php / deploy-ruby-on-rails-Anwendungen Rechen

oder benutzen Ant oder Maven.

Oder wenn es nur ONE Server, den Sie bereitstellen müssen, könnten Sie einfach hacken zusammen zwei Ruby-Skripte - eine, die für Shutdown / Start-Anforderungen auf dem Server überwacht, und eine lokale, dass Sie laufen auf: Senden shutdown, scp über die Datei, senden Start.

Durch die Art und Weise haben Sie übermitteln eine Integration Fehler, die Sie mit Capistrano zum JRuby Team finden? Ich bin sicher, dass sie glücklich sein würde jeden Beitrag zu haben. :)

Andere Tipps

Ich arbeite mit einem Rails-Projekt mit JRuby und auf einen Tomcat-Server bereitstellen. Ich habe mich entschieden mit Capistrano zu implementieren, weil es so gut wie alles automatisiert. Ich hatte ein paar kleineren Änderungen an Capistrano unter Deployment Lifecycle zu machen, um es zu bekommen auf Tomcat laufen:

Schritt 1: Ich habe eine warble Aufgabe auf dem Server ausgeführt werden, nachdem Capistrano den Code aktualisiert:

desc "Run the warble command to deploy the site"
namespace(:deploy) do
  task :warble do
    run ". ~/.profile;cd #{release_path};warble"
  end
end

Und hakte es in Capistrano Lebenszyklus mit:

after 'deploy:update_code', 'deploy:warble'

Ihr Tomcat-Server hat einen symbolischen Link zeigt auf dem #{release_path}/tmp/war Verzeichnis von Dassel erstellt. Wenn Sie dies nicht möchten, können Sie bequem die Dassel Aufgabe ändern, um die WAR-Datei in das Tomcat-Verzeichnis zu verschieben statt.

Schritt 2: Ich overrode die deploy:start und deploy:stop Aufgaben, so dass sie den Tomcat-Server anstelle eines Mischlings Server kick off:

desc "Starts the Tomcat Server"
namespace(:deploy) do
  task :start do
    sudo "#{tomcat_home}/bin/startup.sh"
  end
end

desc "Shutdown the Tomcat Server"
namespace(:deploy) do
  task :stop do
    sudo "#{tomcat_home}/bin/shutdown.sh"
  end
end

Ich betreibe Capistrano Aufgaben MRT statt der JRuby-Interpreter.

Könnte ‚der Deployer Vlad‘ auf der Suche wert sein, fügt remote_task Rake so dass Sie Aufgaben auf einem Remote-Server ausgeführt werden. Persönlich aber ziehe ich es auf dem Server eine Standard-Rake Aufgabe haben, ssh in und diese Aufgabe ausführen - die dann eine svn checkout tun würde, die WAR-Datei zu machen, was auch immer ...

Ich würde wahrscheinlich für diesen Einsatz Ant. Immerhin, es ist nur eine andere WAR-Datei, nicht wahr? Ich weiß nicht, welche Version von Tomcat Sie verwenden aber Version 4.1x kommt mit einer Ant-Task für die Bereitstellung von Tomcat .

Es gibt ein paar Capistrano Rezepte für Tomcat bereitstellen - Ich baute man in ein Juwel namens Capistrano-tomcat . Es dauert eine WAR Sie (wahrscheinlich mit Warbler ) aufgebaut haben und entfaltet und startet eine Tomcat-Instanz auf eine Remote-Server.

Die Quelle liegt auf Github: http://github.com/rhunter/capistrano-tomcat

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top