0

当我在服务器上使用 Capistrano 部署时出现此错误,我已尝试解决它大约 3 个小时,但未成功当 cap 运行 bundle install 时发生此错误

executing "cd $HOME/releases/20130629113827 && bundle install --gemfile $HOME/releases/20130629113827/Gemfile --path $HOME/shared/bundle --deployment --quiet --without development test"
executing command
The --deployment flag requires a Gemfile.lock. Please make sure you have checked
your Gemfile.lock into version control before deploying.

这是我到目前为止所达到的:

  • Gemfile 和 Gemfile.lock 都存在于服务器上
  • Gemfile.lock 直接存在于应用程序根目录中(它不在文件夹或其他东西中)
  • 发布文件夹在实际发布目录之外没有任何文件
  • 我将 Gemfile 中的所有 gem 与 Gemfile.lock 进行了比较,它们都存在
  • 我在 scm 中检查了我的 Gemfile 和 Gemfile.lock 并且 .bundle 在忽略列表中

我没有在 Capistrano 中为捆绑程序使用任何设置,所以我错过了设置或其他什么?

提前致谢

4

1 回答 1

5

我明白了。问题是我的 Rails 应用程序根目录位于另一个名为 app 的目录中,因此 Capistrano 在错误的目录中查找 Gemfile 我只需将其添加到 deploy.rb 即可解决:

set :bundle_gemfile, "app/Gemfile"

我希望这可以帮助任何有这个问题的人

于 2013-07-01T11:28:35.663 回答