Capistrano,Bundle Pathing Issue

时间:2010-12-20 05:41:17

标签: ruby-on-rails ruby capistrano bundler

对不起,长标题:)。有一些Capistrano问题(虽然问题可能在于捆绑)。尝试将Rails 3应用程序部署到Linode(Ubuntu 10.04 LTS)。我认为这可能是一个RVM问题,但我仍然在服务器上使用RVM而没有问题。

这是我运行'cap deploy:update'时出现的错误(设置并检查运行正常)

  * executing "bundle install --gemfile /home/deploy/rails_apps/deed/releases/20101220040406/Gemfile --path /home/deploy/rails_apps/deed/shared/bundle --deployment --quiet --without development test"
    servers: ["myserver"]
    [myserver] executing command
 ** [out :: myserver] The path `/home/deploy/Documents/Rails_Projects/deed/vendor/gems` does not exist.
    command finished

这是我的deploy.rb

require 'bundler/capistrano'

set :domain, "mydomain"

set :application, "deed"
set :repository,  "deploy@#{domain}:~/deed.git"

set :scm, :git

# Or: `accurev`, `bzr`, `cvs`, `darcs`, `git`, `mercurial`, `perforce`, `subversion` or `none`
set :user, "deploy"
set :deploy_to, "/home/deploy/rails_apps/#{application}"
role :web, domain                          # Your HTTP server, Apache/etc
role :app, domain                          # This may be the same as your `Web` server
role :db,  domain, :primary => true # This is where Rails migrations will run

# If you are using Passenger mod_rails uncomment this:
# if you're still using the script/reapear helper you will need
# these http://github.com/rails/irs_process_scripts
default_run_options[:pty] = true  # Must be set for the password prompt from git to work

set :default_environment, { 
  'PATH' => "/opt/ruby-enterprise-1.8.7-2010.02/bin:$PATH",
  'RUBY_VERSION' => 'ruby 1.8.7',
  'GEM_HOME' => '/opt/ruby-enterprise-1.8.7-2010.02/lib/ruby/gems/1.8/',
  'GEM_PATH' => '/opt/ruby-enterprise-1.8.7-2010.02/lib/ruby/gems/1.8/',
  'BUNDLE_PATH' => '/opt/ruby-enterprise-1.8.7-2010.02/lib/ruby/gems/1.8/'
}

namespace :deploy do
  task :start do ; end
  task :stop do ; end
  task :restart, :roles => :app, :except => { :no_release => true } do
    run "#{try_sudo} touch #{File.join(current_path,'tmp','restart.txt')}"
  end
end

2 个答案:

答案 0 :(得分:0)

问题是我有

gem 'devise', :path => '~/Documents/Rails_Projects/deed/vendor/gems'

在我的Gemfile中,因为我想改变用户创建后Devise重定向的位置,所以我只是编辑了gem。删除Gemfile中的硬编码路径解决了这个问题,虽然我找不到一条可行的路径。

我应该在我的应用中覆盖那个Devise控制器,而不是在本地引用它然后编辑它吗?

答案 1 :(得分:0)

  

我应该在我的应用中覆盖那个Devise控制器,而不是在本地引用它然后编辑它吗?

是的,绝对的。查看Devise附带的生成器,特别是视图和控制器:http://rubydoc.info/github/plataformatec/devise/master/file/README.rdoc#Configuring_views。您需要创建一个users_controller并覆盖设备的功能。