2015-01-12 2 views
1

나는 내 Gemfile에 포함시키고 자하는 Rails 프로젝트와 함께 사용할 내부 보석을 만들었습니다.Bundler에서 지역 보석을 사용하기

보석은 Github.com의 전용 저장소에 보관되어 있으므로 (:git은 옵션이 아닙니다.) 보석을 넣을 수있는 가장 좋은 방향은 :path입니다.

gem 'mygem', :path => '/path/to/gem/dir' 

그래도 궁금 :

  • 는 어디 보석위한 이상적인 장소가 포함되어야한다? (vendor/?)
  • 공급 업체가 그때 (vendor/ 때문에 기본적으로 무시됩니다) 내 프로젝트를 배포하는 카피 스트라 노를 사용하고
  • 내 프로젝트 저장소에 보석을 추가 할 필요가 없습니다, 가장 좋은 장소 인 경우; Capistrano는 어떻게 그것을 배포 할 수 있도록 지역 보석을 알고 있어야합니까? 그러나 자식 => 'https://my_username:[email protected]/my_github_account/my_repo.git을'

    을 :

답변

0

당신은 공급 업체 위치를 이동하고이 같은 gemfile의 개인 보석에 대한 인증 정보를 가질 수 있습니다,

보석 'foo는'

자식 : 나는 당신이이처럼 보석 파일에 자식 프로토콜 기반의 URL을 사용할 수 있도록 당신이 gemfile 이러한 민감한 정보를 노출 불편 될 것이라고 추측하고

을 //github.com/username/repo.git

git 프로토콜 기반 URL은 읽기 전용이므로 개인 repo는 손상되지 않아야합니다.

또한 카피 스트라노 작업을 작성하여 공급 업체 디렉토리에 비공개 젬을 배포 할 수 있다고 확신하지만 capistrano 작업에서 github 사용자 이름/비밀번호를 입력해야 할 수도 있습니다. 또한 배포 중에 capistrano 작업에 사용자 이름/암호를 입력하는 대신 사용자 이름/암호를 묻는 메시지를 표시 할 수 있습니다.

+0

답장 @norman을 주셔서 감사합니다. 'gem 'mygem', '~> 0.1.0', : path => 'vendor/git/mygem /''은 지정된 경로로 보석을 복제 한 후에 작업을 끝냈습니다. 나는 릴리스를 위해 번들이 생성되기 전에 보석을 'vendor'에 배포하기 위해 작업 경로를 내려갈 생각 이었지만 repo에 내 자격 증명을 포함하는 것을 주저합니다. (프로젝트는 비공개이지만 나만 기여한 것은 아닙니다.) 카피스트라노 스크립트에는 ssh-agent 포워딩 기능이 있으므로 배포 사용자는 아무런 문제없이 보석을 복제 할 수 있어야합니다. – whargrove

관련 문제