我安装了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
答案 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帮助。