的Gemfile:如何讓Capistrano 3使用RVM紅寶石?
gem 'capistrano', '~> 3.0.0'
gem 'capistrano-rails'
gem 'capistrano-bundler'
gem 'capistrano-rvm'
gem 'capistrano3-puma'
Deploy.rb:
Production.rb
namespace :rails do
desc "Open the rails console on primary app server"
task :console do
on roles(:app), primary: true do
execute_interactively "#{current_path}/script/rails console RAILS_ENV=production"
end
end
def execute_interactively(command)
cmd = "ssh -l deploy 255.255.255.255 -p 21 -t 'cd #{deploy_to}/current && #{command}'"
info "Connecting to 255.255.255.255"
exec cmd
end
end
Capfile:
require 'capistrano/setup'
require 'capistrano/deploy'
require 'capistrano/rvm'
require 'capistrano/bundler'
require 'capistrano/rails/assets'
require 'capistrano/rails/migrations'
require 'capistrano/puma'
require 'whenever/capistrano'
Dir.glob('lib/capistrano/tasks/*.cap').each { |r| import r }
當我運行cap production rvm:check
輸出爲:
rvm 1.25.19 (master) by Wayne E. Seguin <[email protected]>, Michal Papis <[email protected]> [https://rvm.io/]
system
ruby 2.1.1p76 (2014-02-24 revision 45161) [x86_64-linux]
如果它不使用user
代替system
因爲我指定的rvm_type
?
當我運行cap production rails:console
然後我得到:
INFO Connecting to 255.255.255.255
/usr/bin/env: ruby: No such file or directory
Connection to 255.255.255.255 closed.
謝謝,這個回答讓我去調查CAP3多一點。我已經到了我的命令都工作的地步,但控制檯切換到檢查模式(https://gist.github.com/pawel2105/9706550) – Simpleton
「相關代碼」是一個救星! 如果您將安裝RVM的路徑放在您自己的位置而不是默認位置,您可以通過將其放置在您的deploy.rb文件中來告訴rvm capistrano插件:'set:rvm_custom_path',/ my/custom/path /到/ rvm'' – Del