2016-12-28 2 views
0

보통 사람들은 bundle install을 사용하여 보석을 설치합니다. 그러나 Gemfile과 Gemfile.lock이 필요합니다 (선택 사항).Gemfile.lock을 기반으로 보석을 설치하는 방법 (Gemfile없이)

내 상황은 약간 다릅니다. Gemfile.lock 만 있습니다. 그렇다면 bundle 명령을 기반으로이 모든 보석을 어떻게 설치할 수 있습니까?

시도했습니다. bundle install --deployment입니다. 하지만 난 Gemfile 오류를 찾을 수 없습니다.


확인. 나는 bundler github 문제에서이 질문을했다. - 내가

난 단지 Gemfile.lock와 bundle install를 실행하도록 준 할 수없는 요약은 https://github.com/bundler/bundler/issues/5293#issuecomment-269978731

: 그들의 회원이 나에게 좋은 대답을했다. 하지만 여전히 문제를 해결해야합니다. 그리고 내 Gemfile에는 그룹, 플랫폼, 설치 조건과 같은 특별한 옵션이 없습니다. 그래서 나는 도커 이미지 용 Gemfile.lock을 Gemfile로 되돌리려면 script(gem)을 썼다. [SOLVED]

+0

'gemfile.lock'을 읽고'gemfile'을 리버스 엔지니어링하는 것을 고려 했습니까? Bundler는 gemfiles을 사용하도록 설계되었으므로, 당신이 그것을 사용하는 것을 권장하지 않습니다. – Myst

+0

@Myst 역방향 gemfile.lock -> gemfile 또는 번들을 gemfile.lock을 통해 직접 설치하려고합니다. 지금 당장 Gemfile.lock 만 있기 때문입니다. 젬 파일은 다른 젬 파일을 다른 저장소에''요구할 것입니다. 그래서 내가 부두 이미지를 만들 때. 생성 된 Gemfile.lock 만 있습니다. 어떻게해야합니까? – agate

+0

스크립트를 실행할 때마다 로컬 복사본을 다운로드 할 수 있습니까? – Myst

답변

0

당신은 들러의 deployment mode를 사용할 수 있습니다.

+0

감사! 나는 이것을 전에 시도했다. 하지만 'Gemfile을 찾을 수 없습니다'라는 오류가 발생했습니다. – agate

0

gemfile.lock으로, 당신은

bundle install --deployment 

유일한 캐치는이 명령이 공급 업체에 보석을 설치하는 것입니다/대신 일반 보석 번들 경로의 번들 실행할 수 있습니다. 프로덕션에서만 사용되기 때문에 기대됩니다.

그래도 모두 잘 작동합니다.

+0

다른 스레드에서이 솔루션을 보았습니다. 그러나 그것을 사용하려고 할 때. 오류가 발생했습니다 :'Gemfile을 찾을 수 없습니다' – agate

0

gem을 터미널에서 직접 실행 해 보았습니까? 그렇게하면 Gemfile을 전혀 사용할 필요가 없습니다.

예를 들어, devise gem을 사용하면 단말기에 $ gem install devise을 실행하면 Gemfile에 추가하지 않고 devise gem을 설치합니다.

+0

나는 그것을 할 수 있음을 알고 있습니다. 그러나 나는 도커 이미지를 만들기 위해 노력하고 있습니다. 어느 로컬 Gemfile.lock을 다시 사용할 수 있기를 바랍니다. 그래서 수동으로 gem install 명령을 추가 할 필요가 없습니다. – agate