我遇到了完全相同的问题。
我的发布文件夹中没有任何内容(完全没有 - 我的部署冷一直回滚)。
我的 gemfile.lock 已签入 Subversion。
我明白了:
** [out :: localhost] The --deployment flag requires a Gemfile.lock. Please make sure you have checked your Gemfile.lock into version control before deploying.
有什么方法可以停止回滚,以便我可以看到发布文件夹在尝试运行时的样子
cd /var/qlarity/releases/20130222003607 && bundle install --gemfile /var/qlarity/releases/20130222003607/Gemfile --path /var/qlarity/shared/bundle --deployment --quiet --without development test
稍后……
我发现我可以通过注释掉
中所示的代码来防止回滚
gems\capistrano-2.14.1\lib\capistrano\recipes\deploy.rb
task :update_code, :except => { :no_release => true } do
# on_rollback { run "rm -rf #{release_path}; true" }
strategy.deploy!
finalize_update
end
这使我能够检查我的发布文件夹,果然,其中没有 Gemfile.lock。结果我的 Rails 项目文件结构中出现了一个不必要的文件夹,而不是
myapp/trunk/app
myapp/trunk/config
...
myapp/trunk/Gemfile
我有
myapp/trunk/myapp/app
myapp/trunk/myapp/config
...
myapp/trunk/myapp/Gemfile
这意味着我最终得到了一个包含我的 Gemfile 的文件夹
releases/nnnn/myapp
并且 bundle 正在寻找 Gemfile in
releases/nnnn
当我从
更改我的 Capistrano 配置时
deploy.rb
set :repository, "file:///D:/_SVN//myapp/trunk"
到
deploy.rb
set :repository, "file:///D:/_SVN//myapp/trunk/myapp"
现在一切都很好。接下来真的应该看看修复文件夹结构!