无法运行cap deploy:在ec2上设置,任务“deploy:setup”不存在

时间:2012-02-25 19:45:23

标签: ruby-on-rails-3 amazon-ec2 capistrano

我安装了ruby(使用rvm),phusion passenger,&所有或要求。

同样在ec2上,当我运行$ ssh -T git@github.com时,我收到成功消息

但是当我尝试运行时 - > $ cap deploy:setup,我收到一条错误消息 任务`deploy:setup'不存在

cap -vT

➜  bridge1 git:(master) cap -vT
cap bundle:install # Install the current Bundler environment.
cap deploy:restart # 
cap deploy:start   # 
cap deploy:stop    # 
cap invoke         # Invoke a single command on the remote servers.
cap shell          # Begin an interactive Capistrano session.

Extended help may be available for these tasks.
Type `cap -e taskname' to view it.

这是我的deploy.rb

require 'bundler/capistrano'
#using  RVM!
$:.unshift("#{ENV["HOME"]}/.rvm/lib")
require "rvm/capistrano"
set :rvm_type, :user


set :application, "capi_app"
set :deploy_to, "/var/www/#{application}"

role :web, "184.169.135.60"                          # Your HTTP server, Apache/etc
role :app, "184.169.135.60"                         # This may be the same as your `Web` server
role :db,  "184.169.135.60", :primary => true # This is where Rails migrations will run


default_run_options[:pty] =  true
set :repository,  "git@github.com:jaipratik/gibridge1.git"
set :scm, :git
set :branch, "master"


set :user, "ubuntu"            
set :use_sudo, false
set :admin_runner, "ubuntu"

set :rails_env, 'production'     
#set :use_sudo, false   #if error delete this


# If you are using Passenger mod_rails uncomment this:
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

的Gemfile

source 'https://rubygems.org'

gem 'rails', '3.2.1'

# Bundle edge Rails instead:
# gem 'rails', :git => 'git://github.com/rails/rails.git'

gem 'sqlite3'


# Gems used only for assets and not required
# in production environments by default.
group :assets do
  gem 'sass-rails',   '~> 3.2.3'
  gem 'coffee-rails', '~> 3.2.1'

  # See https://github.com/sstephenson/execjs#readme for more supported runtimes
  # gem 'therubyracer'

  gem 'uglifier', '>= 1.0.3'
end

gem 'jquery-rails'

# To use ActiveModel has_secure_password
# gem 'bcrypt-ruby', '~> 3.0.0'

# To use Jbuilder templates for JSON
# gem 'jbuilder'

# Use unicorn as the web server
# gem 'unicorn'

# Deploy with Capistrano
 gem 'capistrano'

# To use debugger
# gem 'ruby-debug19', :require => 'ruby-debug'


group :test do
  # Pretty printed test output
  gem 'turn', :require => false
end


group :production do
  gem 'therubyracer'
end

5 个答案:

答案 0 :(得分:14)

转到您的应用程序目录并运行:

capify .

答案 1 :(得分:2)

这恰好发生在我身上,我错误地将命令输入到连接到vps服务器的终端窗口并得到相同的错误:任务部署:更新不存在。

您需要在本地终端窗口中输入cap命令。

答案 2 :(得分:1)

如果您已启用

require 'capistrano/ext/multistage'
在deploy.rb中

,正确的命令是

cap production deploy:setup

答案 3 :(得分:0)

Capify确实像user1524695指出的那样工作,但它真正需要的是行

load 'deploy'

加载内置部署任务。如果您在标准位置运行标准的Capistrano脚本(相对于您的工作目录设置了config / deploy.rb和Capfile),Capfile将加载默认生成的config / deploy.rb。如果您出于某种原因在任意位置运行脚本,只需将该行添加到脚本的顶部,然后

cap -f /path/to/myscript.rb deploy:setup

应该按预期工作,即使目录没有Capified。

答案 4 :(得分:0)

特定文件夹的权限不正确,chmod 700帮助。