2016-12-28 17 views
0

通常、人々はbundle installを使用して宝石をインストールします。しかし、GemfileとGemfile.lock(オプション)が必要です。Gemfile.lock(Gemfileなし)に基づいてgemをインストールする方法

私の状況は少し異なります。私はGemfile.lockしか持っていません。では、bundleコマンドに基づいてこれらの宝石をすべてインストールするにはどうすればいいですか?

私はbundle install --deploymentを試しました。しかし、私はが見つかりませんGemfileエラーを見つけることができませんでした。


OK。私はこの質問をbundler githubの問題で尋ねました。私は

は私だけGemfile.lockでbundle installを実行するためにあきらめたことを行うことはできません- 概要についてhttps://github.com/bundler/bundler/issues/5293#issuecomment-269978731

:彼らのメンバーは私に良い答えを与えました。しかし、私はまだ私の問題を解決する必要があります。私のGemfileでは、グループ、プラットフォーム、インストール条件などの特別なオプションはありません。そこで私はscript(gem)を書いて、私のドッカー画像のGemfile.lockをGemfileに戻しました。 [SOLVED]

+0

'gemfile.lock'を読んで、' gemfile'をリバースエンジニアリングすることを検討しましたか? Bundlerはgemfilesを使用するように設計されていますが、私はそれを戦うことはお勧めしません。 – Myst

+0

@Myst gemfile.lock - > gemfileまたはgemfile.lockで直接バンドルをインストールするかのどちらかを試しています。今はGemfile.lockしか持っていないからです。 Gemfileは別のrepoでいくつかの外部Gemfileを ''必要とします。だから私はドッカーのイメージを構築するとき。私は生成されたGemfile.lockしか持っていません。私は何をすべきか? – agate

+0

スクリプトを実行するたびにローカルコピーをダウンロードする可能性がありますか? – Myst

答えて

0

あなたはバンドラのdeployment modeを使用することができます。唯一gemfile.lock

+0

ありがとう!私はこれを前に試しました。しかし、私は 'Gemfile'エラーを見つけることができませんでした。 – agate

0

、あなたは唯一の難点は、このコマンドではなく、通常の宝石バンドルパスのベンダー/バンドルに宝石をインストールすることである

bundle install --deployment 

を実行することができます。それは生産でのみ使用されることが期待されるためです。

でも、すべて同じです。

+0

他のスレッドでこの解決策を見ました。しかし、私はそれを使用しようとします。私はエラーが発生しました: 'Gemfileを見つけることができませんでした。 ' – agate

0

端末で直接gem installを実行しようとしましたか?そうすれば、Gemfileをまったく使用する必要はありません。

たとえば、devise gemを使用すると、端末に$ gem install deviseを実行するだけで、devise gemがGemfileに追加されずにインストールされます。

+0

私はそれを行うことができます。しかし、私はドッカーのイメージを構築しようとしています。私は私のローカルGemfile.lockを再利用できることを願っています。そのため、gem installコマンドを手動で追加する必要はありません。 – agate

関連する問題