2012-10-09 3 views
0

저는 Ruby에 익숙하지 않아 어떻게 작동하는지 자세히 알고 싶습니다. 그래서 저는 가상 머신에서 서버 구성을 테스트하여 빠른 레일 배치를 수행했습니다.직선형 레일 배치

저는 RVM, Ruby, Rails, Git, Gitolite, PostgreSQL, Thin 및 Nginx가 Ubuntu 10.04 환경에서 실행됩니다.

이제 모든 것을 하나로 묶고 싶습니다. 그래도 배치 과정에서 막혔습니다.

프로젝트를 Git 트렁크에 커밋 한 후 응용 프로그램을 올바른 위치에 배치하고 프로덕션 환경을 설정하고 번들을 설치하고 마이그레이션을 수행 한 다음 Nginx를 다시 시작하기위한 배포 작업을 연결하려고합니다.

그러나 작동 방식에 대한 간단한 참조를 찾지 못했습니다. 내가 구글에서 발견 한 것은 승객, 카피 스트라 노 등을 사용하는 가이드입니다. heroku와 비슷한 git commit 작업을 실행하려고하지만, 100 % 서버 측을 수행하는 가장 좋은 도구는 무엇입니까?

일부 셸 스크립트는 어떻게 작성합니까? 수동으로 프로젝트를 배포하려면 어떻게해야합니까? 어떤 단계입니까? Rails 배포의 모든 세부 사항을 알고 있다고 가정하지 않는 가이드가 있습니까?

감사합니다.

답변

0

글쎄, 나는 거의 완벽하게 작동 할 수 있었다. 지금까지 추적 할 수

주요 작업은 다음과 같습니다

  • 사용자가 트렁크에 밀어 스크립트를 사용하여 다음 단계를 실행하는 데 자식 후크를 사용해야합니다.

해야 스크립트 다음

  • 복제를/var/www가 폴더에 프로젝트;
  • Gemfile에 'thin'gem을 삽입하십시오.
  • 응용 프로그램 폴더에서 'bundle'명령을 실행하십시오.
  • 응용 프로그램 폴더에서 에셋을 사전 컴파일합니다.
  • 데이터베이스를 마이그레이션하십시오.
  • nginx 및 thin을 중지하십시오.
  • thin 및 nginx를 다시 시작하십시오. 응용 프로그램이 새로운 경우

, 우리는해야합니다

  • 데이터베이스 정보와 일치 새 사용자를 만듭니다;
  • 프로덕션 데이터베이스를 만듭니다.
  • 새로운 nginx 구성 파일을 삽입하십시오.
  • 수출과 같은 응용 프로그램 폴더에서 얇은 구성은 : 행동의 순서는

thin config -C /etc/thin/app.yml -c /var/www/app --servers 1 -e production

입니다 더 많거나 적은이 :

$ bundle package 
$ bundle install --deployment 
$ RAILS_ENV=production rake db:migrate 
$ rake assets:precompile 
$ thin start -C /etc/thin/app.yml 

이 지금까지 기본입니다. 100 % 작동하도록 만들고 싶습니다. 그런 다음 인터넷에 가이드를 게시하고 싶습니다.

업데이트

내가 할 것이라고 말했다 가이드 :

https://github.com/sentient06/RDH/wiki

0

아마도 당신이 생각하는 것은 git post-receive 후크입니다 (튜토리얼은 여기에서 찾을 수 있습니다 : http://toroid.org/ams/git-website-howto).

이 고리를 사용하여 예를 들어 트리거해야합니다. 당신이 필요로하는 모든 단계를 수행해야 쉘 스크립트 - 위치 :

  1. 체크 아웃 HEAD는 자식의 repo에서 커밋 (git checkout -f를 참조 링크 튜토리얼)
  2. 실행 bundle install
  3. 실행 bundle exec rake db:migrate - 이것은 당신 가정 이미 귀하의 DB를 만들었습니다
  4. 씬 서버 클러스터를 다시 시작/시작하십시오 (이 작업을 사용하는 승객과 비슷한 경우 여기 정확히 정확하지는 않습니다. 단지 restart.txt 파일을 생성하는 것입니다) - 귀하는 귀하의 nginx를 그것 앞에서 리버스 프록시, 그렇지?

짧은 이야기입니다. 조금 더 복잡합니다. 자산 파이프 라인 (레일> = 3.1)을 사용하는 경우 자산을 사전 컴파일하려는 경우가 있습니다.하지만 위의 내용이 좋은 출발점입니다.

+0

어쩌면 이것은 관련 SO 질문입니다 ... http://stackoverflow.com/questions/3838727/git-post -receive-hook-for-website-staging – Inza

+1

레이크 에셋을 잊지 마세요 : 프리 컴파일 ... –

관련 문제