bundler如何在vendor/bundle/bin和vendor/bbundle/ruby/2.6.0/bin之间进



有人能解释Ruby bundler是如何为给定的gem选择运行哪个可执行文件的吗?

我使用了一个带有绑定挂载的Docker容器,以便主机和容器共享同一个工作目录(Rails项目(。在容器中,当我bundle exec which rspec:时,我看到与在主机上调用的可执行文件不同

  • /home/me/myproj/vendor/bundle/bin/rspec
  • /home/me/myproj/vendor/bundle/ruby/2.6.0/bin/rspec

当我运行bundle path时,结果只是vendor/bundle。这不是很有启发性。

我希望容器使用与主机相同的gem代码。我有办法配置它吗?

您可以将gem安装到类似的特定路径

bundle install --path='vendor/bundle'

更好的

bundle check --path='vendor/bundle' || bundle install --path='vendor/bundle'

参考编号:https://bundler.io/v0.9/bundle_install.html

最新更新