通常,人们会使用bundle install
来安装宝石。但它需要Gemfile和Gemfile.lock(可选)。
我的情况有点不同。我只有Gemfile.lock。那么如何根据bundle
命令安装所有这些宝石。
我试过了bundle install --deployment
。但我得到无法找到Gemfile 错误。
行。我在bundler github问题中问了这个问题。他们的成员给了我一个很好的答案:https://github.com/bundler/bundler/issues/5293#issuecomment-269978731
总结 - 我不能这样做
我放弃了仅使用Gemfile.lock运行bundle install
。但我仍然需要解决我的问题。在我的Gemfile中,我没有任何特殊选项,如组,平台,安装条件。所以我写了一个script(gem)来将Gemfile.lock还原为我的docker镜像的Gemfile。
[解决]
答案 0 :(得分:0)
您可以使用捆绑包的deployment mode。
答案 1 :(得分:0)
只有gemfile.lock
,您可以运行
bundle install --deployment
唯一的问题是,此命令会将gem安装到vendor / bundle而不是普通的gem bundle路径。之所以如此,是因为它只能用于生产。
虽然效果很好。
答案 2 :(得分:0)
您是否尝试过直接在终端中运行gem install?这样你根本不需要使用Gemfile。
例如,使用devise gem,您只需在终端中运行$ gem install devise
即可安装设计gem,而无需将其添加到Gemfile中。