Rails on Rails 응용 프로그램을 Tomcat에 배치하는 가장 좋은 방법은 무엇입니까?

StackOverflow https://stackoverflow.com/questions/147671

문제

테스트를 위해 Tomcat 인스턴스에 Ruby on Rails 앱 (Jruby에서 실행)을 배치하는 방법을 찾고 있습니다.

Tomcat 인스턴스는 SSH로 할 수있는 Solaris 서버에서 실행 중입니다. 나는 Capistrano를 사용하는 것을 보았지만 Tomcat에 배치하는 데 사용하거나 Jruby 아래에서 실행하는 것에 대해서는 많이없는 것 같습니다. Windows/Jruby Environment로 인해 Capistrano에서 버그를 계속 누르고 있습니다. 내 PC가 실행 중입니다 (예, 그것은 회사입니다 - 내 선택이 아니라 함께 살아야합니다).

Warble을 사용하여 .war 파일을 작성하고 앱은 수동으로 복사하고 배포하면 앱이 배치되어 정상적으로 실행됩니다. 나는 실제로 그것을 얻기 위해 더 쉽고 자동화 된 것을 원합니다.

누구든지 전에이 일을 해냈어? 웹의 문서는 꽤 얇아 보입니다.

도움이 되었습니까?

해결책

나는 이것에 대한 경험이 많지 않으므로 최선의 방법을 줄 수 있을지 모르겠지만 Capistrano가 작동하지 않고 별도의 MRI 설치를 할 수 없다면 실행할 수 없습니다. 몇 가지 대안이 남았습니다.

평범한 레이크를 실행하고 자신의 배포 목표를 작성하십시오.http://www.gra2.com/article.php/deploy-ruby-on-rails-applications-rake

또는 Ant 또는 Maven을 사용하십시오.

또는 배포 해야하는 서버 하나 만 있으면 두 개의 루비 스크립트를 해킹 할 수 있습니다. 하나는 서버에서 종료/시작 요청을 위해 서버를 듣는 것과 실행되는 로컬 하나의 로컬 하나를 보내고 파일을 통해 SCP를 보내고 Send입니다. 스타트 업.

그건 그렇고, Capistrano에서 찾은 통합 버그를 Jruby 팀에 제출 했습니까? 나는 그들이 어떤 기여도에 기뻐할 것이라고 확신합니다. :)

다른 팁

Jruby를 사용하여 Rails 프로젝트를 실행하고 Tomcat 서버에 배포하고 있습니다. Capistrano와 함께 배치하기로 선택했습니다. Tomcat에서 실행하기 위해 Capistrano의 배포 수명주기를 약간 약간 수정해야했습니다.

1 단계 : Capistrano가 코드를 업데이트 한 후 서버에서 실행할 워블 작업을 만들었습니다.

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

다음을 사용하여 Capistrano 라이프 사이클에 연결했습니다.

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

내 Tomcat 서버에는 상징 링크가 있습니다 #{release_path}/tmp/war Warble이 만든 디렉토리. 마음에 들지 않으면 워블 작업을 쉽게 수정하여 전쟁 파일을 대신 Tomcat 디렉토리로 이동할 수 있습니다.

2 단계 : 나는 왜곡했다 deploy:start 그리고 deploy:stop 작업이 Mongrel 서버 대신 Tomcat 서버를 시작하도록 작업을 수행합니다.

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

Jruby 통역사 대신 MRI를 사용하여 Capistrano 작업을 실행합니다.

'Vlad the Deployer'를 살펴볼 가치가있을 수 있습니다. 원격 서버에서 작업을 실행할 수있는 remote_task를 레이크에 추가합니다. 그러나 개인적으로 나는 서버에서 표준 레이크 작업을 선호하고 SSH를 입력하고 해당 작업을 실행하는 것을 선호합니다. 그러면 SVN 체크 아웃을하고 전쟁 파일을 만들어 든 ...

나는 아마 이것을 위해 개미를 사용할 것입니다. 결국, 그것은 또 다른 전쟁 파일입니다. 어떤 버전의 Tomcat을 사용하고 있는지 모르겠지만 버전 4.1x Tomcat에 배포하기위한 개미 작업이 제공됩니다.

Tomcat에 배포하기위한 Capistrano 레시피가 몇 개 있습니다. Capistrano-Tomcat. 당신이 지은 전쟁이 필요합니다 (아마도 명금) 원격 서버에서 Tomcat 인스턴스를 배포하고 시작합니다.

소스는 Github에 있습니다. http://github.com/rhunter/capistrano-tomcat

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top