2015-01-09 5 views
1

저는 레일 배치가 완전히 새롭습니다. 인터넷 검색을 한 후에도 레일 앱을 배포하는 방법을 이해하는 것이 어렵다는 것을 알게되었습니다.Rails 4.2 capistrano 3 배치

그래서, 내 질문은 :

  1. 모든 레일 종속성으로 VPS를 설정 한 후, 어디 내 코드베이스를 저장합니까? VPS 또는 특정 위치의 루트 디렉토리 www/ 또는 public/?

  2. 전체 레일 앱 폴더 또는 그 일부만 업로드해야합니까? 내 레일 앱에 클립 클립이 있고 클립 클립에 디렉토리가 생성되므로 system/을 업로드해야합니까?

  3. Capistrano 3에는 repo_url 필드가 있는데, 그들은 file://, https://, ssh://, or svn+ssh://을 지원하지만, capistrano에 대한 대부분의 기사에서는 github 저장소를 추가했습니다. 그러나, 나는 그런 github repo가 ​​없다. 그럼 내가 무엇을 입력해야합니까?

감사합니다. 특정 질문에 대한

+0

소개 # 3, 당신은 당신이 github의를 사용하지 않는 경우 소스 코드를 관리하기 위해 무엇을 사용합니까? –

답변

0

당신은 set up your own private git server, 다음 deploy.rb 당신이

set :repo_url, 'ssh://[email protected]_ip/path/to/your_git_repo.git'

같은 것을 넣을 수 있습니다, 당신은 서버에 응용 프로그램을 업로드 할 필요가 없습니다. Capistrano는 배포 할 때 응용 프로그램을 업로드합니다.

어디에서 코드 기반을 둡니까? 이것은 당신이 /system 디렉토리는 버전 관리에 클립 이미지를할지 여부에 따라 달라집니다 업로드 여부 deploy.rb 예컨대

set :deploy_to, '/path/to/my_codebase'

에 넣어 무엇에 의해 결정된다. 그렇지 않은 경우 gitignore에 디렉토리를 추가 할 수 있습니다. 우분투 14.04 승객 및 NGINX에서의 배포 방법은 tutorial입니다. Passenger와 Nginx를 사용하지 않는다면 설정에 따라 capistrano를 설정하고 조정할 수 있습니다.

편집

당신은 개발 시스템에 자식을 설치하고 위의 링크에 설명 된 바와 같이 귀하의 VPS에 자식 서버를 설정,

git remote add origin <server>를 사용하여 로컬 컴퓨터에 원격 서버를 추가해야

여기서 '서버'는 VPS의 git repo에 대한 URL입니다. 예 : 당신이 커밋하고 서버에 변경 사항을 누르면

ssh://[email protected]_ip/path/to/your_git_repo.git

지금, 카피 스트라 노 당신의 자식 서버의 최신 버전을 배포합니다.

Here is a link with a guide on how to get started with git

+0

그게 내가 capitrano를 통해 배포하기 위해서는 반드시 원격 자식 목록을 가져야 함을 의미합니까? 나는 거의 자식을 사용하지 않기 때문에 git에 민감합니다 ... –

+0

원격 자식 리포는 응용 프로그램을 배포하는 동일한 VPS에있을 수 있습니다. 유일한 조건은 배포하는 사용자가 repo가있는 디렉토리에 대한 읽기 및 쓰기 권한을 가져야한다는 것입니다. 이 경우 deploy.rb'set : repo_url, 'ssh : // your_vps_username @ your_vps_ip/path/to/git_repo.git'에 넣습니다. 간단히 git로 시작하는 방법에 대한 링크로 간단히 답변을 편집 할 것입니다. –

+0

답장을 보내 주셔서 감사합니다. 내가 먼저 로컬 코드베이스를 원격 git repo에 푸시 한 다음 cap deploy 명령을 실행해야합니까? 아니면 배포를 제한하기 만하면 Capistrano는 내 최신 코드베이스를 밀어서 앱을 배포 할 것입니까? –

1

답변 제기 :

모든 레일 종속성으로 VPS를 설정 한 후, 어디 내 코드베이스를 저장합니까? VPS 또는 특정 위치의 루트 디렉토리 예 : www/public /?

:deploy_to 매개 변수가 가리키는 폴더에 배포됩니다. 지정되지 않은 경우, /var/www/#{fetch(:application):deploy_to 기본값 참조 : https://github.com/capistrano/capistrano/blob/05f63f5f333bb261f2a4c4497174361c48143252/lib/capistrano/defaults.rb#L3

내가 전체 응용 프로그램 폴더 또는 그것의 한 부분을 레일 업로드해야 하는가? 나는 내 레일에 클립을 가지고 있으며, 클립 클립은 시스템/디렉토리 을 public/폴더에 생성하므로 시스템을 업로드해야합니까? /?

종이 클립 system 폴더는 환경에 따라 다릅니다. 각 환경 (개발, 생산, ...)은 특정 환경에 업로드 된 파일을 저장할 자체 system 폴더를 갖습니다. 이 폴더는 배포되는 코드의 일부가 아니어야합니다.

이러한 폴더를 전달하는 가장 좋은 방법은 서버의 공유 폴더에 보관하고 코드의 현재 버전에 심볼 링크를 만들어 첨부 파일 저장/검색에 같은 폴더가 사용되도록하는 것입니다. 자세한 내용은 http://robmclarty.com/blog/how-to-deploy-a-rails-4-app-with-git-and-capistranoSection 3. Update custom links 섹션을 참조하십시오.

위에서 언급했듯이 config/database.yml 파일과 환경 별 구성이 포함 된 다른 파일에도 적용됩니다.

카피 스트라 노 3에서

, 나는 그들이 지원 알고하는 repo_url 필드가 파일 : //, https : //로, SSH : // 또는 SVN + SSH : //하지만 기사 대부분의 카피스트라 노는 github 저장소를 그 안에 넣었습니다. 그러나, 나는 에 그런 github repo가 ​​없다. 그럼 내가 무엇을 입력해야합니까?

배포 할 코드가 저장되는 위치에 따라 다릅니다. 로컬 폴더에있는 경우 file::// 형식을 사용하여 파일의 위치를 ​​지정하십시오. 당신이 자식의 repo에 대한 변경 사항을 커밋 할 때

관련 문제