Capistrano 3.4部署问题

时间:2015-11-17 16:56:23

标签: ruby-on-rails-4 capistrano

我继承了一个Rails项目,我无法使用Capistrano提供的指令部署它。我根本不熟悉卡皮斯特拉诺。

无论我尝试什么,我总会收到以下错误消息

(Backtrace restricted to imported tasks)
cap aborted!
ArgumentError: wrong number of arguments (1 for 2)

Tasks: TOP => production
(See full trace by running task with --trace)

这包括

$ bundle exec cap -T

$ bundle exec cap production deploy

我在这里关注指南https://github.com/capistrano/capistrano

我已经主演了重要信息,但这里是config / deploy / staging.rb的副本

role :app, %w{deploy@**.**.**.**:****}
role :web, %w{deploy@**.**.**.**:****}
role :db,  %w{deploy@**.**.**.**:****}

set :branch, 'develop'
set :deploy_to, '/var/www/soreen.staged.ws'

set :ssh_options, {
  keepalive: true,
  keepalive_interval: 60 #seconds
}

这是Capfile

# Load DSL and Setup Up Stages
require 'capistrano/setup'

# Includes default deployment tasks
require 'capistrano/deploy'

require 'capistrano/rbenv'
require 'capistrano/bundler'
require 'capistrano/rails/migrations' 
require 'capistrano/rails/assets'
require 'capistrano/rails/collection'

# Loads custom tasks from `lib/capistrano/tasks' if you have any defined.
Dir.glob('lib/capistrano/tasks/*.rake').each { |r| import r }

这是config / deploy.rb

# config valid only for current version of Capistrano
lock '3.4.0'

set :application, 'Soreen'
set :repo_url => "****************" 

set :linked_dirs, fetch(:linked_dirs, []).push('log', 'tmp/pids', 'tmp/cache', 'tmp/sockets', 'vendor/bundle', 'public/system')

set :rbenv_type, :user # or :system, depends on your rbenv setup
set :rbenv_ruby, '2.1.2'
set :rbenv_prefix, "RBENV_ROOT=#{fetch(:rbenv_path)} RBENV_VERSION=#    {fetch(:rbenv_ruby)} #{fetch(:rbenv_path)}/bin/rbenv exec"
set :rbenv_map_bins, %w{rake gem bundle ruby rails}
set :rbenv_roles, :all # default value

namespace :deploy do

  desc 'Restart application'
  task :restart do
on roles(:app), in: :sequence, wait: 5 do
      # Your restart mechanism here, for example:
      execute :mkdir, '-p', "#{ release_path }/tmp"
      execute :touch, release_path.join('tmp/restart.txt')
    end
  end

  after :publishing, :restart

  after :restart, :clear_cache do
    on roles(:web), in: :groups, limit: 3, wait: 10 do

    end
  end

end

请帮忙!

1 个答案:

答案 0 :(得分:1)

您可以使用以下内容获取错误的回溯:

bundle exec cap --backtrace -T

这将为您提供更多信息。可能这是您配置中的语法错误。