的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