我有简单的sinatra应用程序进行测试。现在我正在测试capistrano 3并且总是在我的任务deploy:restart
上出现这样的错误:
bash: bundle: command not found
我的Capfile:
require 'capistrano/setup'
require 'capistrano/deploy'
require 'capistrano/rvm'
require 'capistrano/bundler'
Dir.glob('lib/capistrano/tasks/*.cap').each { |r| import r }
配置/ deploy.rb
set :application, 'captest'
set :repo_url, "https://iboltnev:password@bitbucket.org/iboltnev/simple-captest.git"
set :deploy_to, '/home/ilya/capsinatra'
set :pty, true
namespace :deploy do
desc 'Start application'
task :restart do
on roles(:app), in: :sequence, wait: 5 do
execute "bundle exec thin start -R app.rb"
end
end
end
的Gemfile:
source 'https://rubygems.org'
gem 'sinatra'
gem 'thin'
group :development do
gem 'capistrano'
gem 'capistrano-bundler'
gem 'capistrano-rvm'
end
看起来环境与我的ssh-session不同,因为我可以通过ssh手动启动服务器这个shell命令。
我做错了什么?
答案 0 :(得分:0)
包含capistrano-rvm
后,我发现您正在使用RVM
但只是包含它并不会使capistrano在部署时使用RVM环境,根据capistrano-rvm
文档,您需要使用所需的RVM选项配置您的舞台环境:
(...)
set :rvm_type, :user # or :auto
set :rvm_ruby_version, '2.0.0-p247@mygemset'