2012-09-15 3 views
6

우리는 heroku에 올라가는 꽤 큰 응용 프로그램을 가지고 있습니다 ... 그것은 브라우저 캠을 기본으로 사용하는 응용 프로그램이며 그 위에 구축되었습니다. Gemfile은 그다지 크지 않습니다 (우리는 평균적인 앱보다 많은 보석을 가지고 있지 않습니다).하지만 어떤 이유로 배포에는 15 분이 걸립니다. 컴파일 및 (assetsync를 통해) 모든 자산에 5 분으로 인해 소요 S3에 자산을 추진하고 있지만, 나머지 10 분이시 소요되는 :heroku 전개가 매우 길어집니다

----> Heroku receiving push 
-----> Removing .DS_Store files 
-----> Ruby/Rails app detected 
-----> Using Ruby version: ruby-1.9.3 
-----> Installing dependencies using Bundler version 1.2.0 
     Running: bundle install --without development:test --path vendor/bundle --binstubs bin/ --deployment 

누구나이 부분이 너무 오래 걸리는 이유는 어떤 단서가? gemfile 잠금은 REPO이며, Heroku가에 기선을 제압 당했지만, 여기에 우리의 gemfile의 요지입니다 : https://gist.github.com/aa44bbb06eed97736c20

편집 : 우리는 레일

+0

보석을 구입하는 데 어려움을 겪어 보셨습니까? 'bundle package'를 사용하여 다운로드 한'.gem' 파일을 캐쉬 한 다음'git add '를 실행하십시오. && git commit -m "Vendor in Gems"를 저장소에 추가하면 Gem 설치가 즉각적으로 이루어집니다 (병목 현상이라고 가정) – neersighted

+1

자산 컴파일 단계 일 수도 있습니다. 'rake assets : precompile && git commit -a -m "배포 할 때마다 자산을 다시 컴파일하십시오. – neersighted

+0

보석을 팔아서 smidgen을 도왔습니다. 로컬에서 프리 컴파일하면 실제로 시간이 절약되지 않았습니다. 단지 오래 걸렸습니다. – courtsimas

답변

2

3.2.7에있어 들러는 자식의 repo가있는 보석을 사용하는 경우 master 브랜치 나 main 브랜치가 아닌 모든 git repo를 다운로드하여 보석을 포함시킬 것입니다.

우리는 sferik의 rails_admin 보석과 동일한 문제가있었습니다.

그것은 힘 당신과 같이 특정 지점을 지정할 경우 도움 : 말할 수

gem "browsercms", "3.5.3", git: 'git://github.com/josiahivey/browsercms.git', :branch => 'master' 

한 가지 방법은 당신이 변경 이전과 이후 컴파일 된 슬러그의 크기를 살펴 보는 것입니다. 우리의 경우, rails_admin은 약 30MB의 슬러그 크기를 담당했습니다. Heroku는 100MB 슬러그 크기 제한도 있습니다. 다만 FYI입니다.

또한이 같은 번들 팩 명령을 실행하려고 할 수 있습니다 :

bundle pack --all 

이것은 공급 업체/캐시 디렉토리에 (때문에 --all 스위치의도 아마 자식들)의 모든 보석을 넣어 것입니다 . 들러 프로젝트에 대해이 GitHub의에 isssue에 표시된 바와 같이

(A Heroku가 사람이 응답 끝을보고) :

https://github.com/carlhuda/bundler/issues/67

+0

지점은 최고 2 메가를 저장했습니다. 현재 55 메가 슬러그 크기입니다 (많은 것은 browsercms입니다). – courtsimas

0

두 가지가이 과정을주었습니다. 번들러 1.2.1이 도움이되는 것 같았으며, turbo sprockets은 좋은 몇 분을 구했습니다. 지금은 용납 될 수 있습니다.

관련 문제