通常,人们会使用bundle install
来安装宝石。但它需要Gemfile和Gemfile.lock(可选)。如何基于Gemfile.lock安装宝石(不含Gemfile)
我的情况有点不同。我只有Gemfile.lock。那么,如何根据bundle
命令安装所有这些宝石。我试过bundle install --deployment
。但我得到了找不到Gemfile错误。
好的。我在bundler github问题中问了这个问题。他们的成员给了我一个很好的答案:https://github.com/bundler/bundler/issues/5293#issuecomment-269978731
对于总结 - 我不能这样做,
我放弃了跑bundle install
只有Gemfile.lock的。但我仍然需要解决我的问题。在我的Gemfile中,我没有任何特殊的选项,比如组,平台,安装条件。所以我写了一个script(gem)来将Gemfile.lock恢复为我的Docker镜像的Gemfile。
[解决]
您是否考虑阅读'gemfile.lock'并反向设计'gemfile'? Bundler被设计为使用gemfiles,我不建议你打它。 – Myst
@Myst我试图反转gemfile.lock - > gemfile或者通过gemfile.lock直接安装bundle。这是因为我现在只有Gemfile.lock。 Gemfile将在另一个回购中需要一些外部Gemfile。所以当我建立我的码头形象。我只有生成的Gemfile.lock。我该怎么办? – agate
可能每次运行脚本时都下载本地副本? – Myst