0

我正在尝试rake entrprise:pull使用 sshkit 使用 rake 任务从 Rails 应用程序在远程系统上运行 rake 任务,而我正在使用 rvm。

耙任务

require 'sshkit'
require 'sshkit/dsl'
include SSHKit::DSL

namespace :app do
  desc "pulls the records form remote server"
  task :pull => :environment do
    host = SSHKit::Host.new("username@ip")
    on host do |h|
      within("/home/username/my-rails-app/") do
        execute :rake, "enterprise:pull"
      end
    end
  end
end

在控制器中,我调用 rake 任务如下

def index
  %x(rake app:pull)
end

rake app:pull 试图 rake enterprise:pull在远程系统内部运行,当时它抛出/usr/bin/env: ruby: No such file or directory错误

但是当我 ssh 进入远程系统ssh username@ip并且如果运行 'rake enterprise:pull' 它工作正常。my-rails-app 使用 capistrano-3 和 rvm 部署。

如何摆脱这个问题?

4

0 回答 0