有人能解释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