加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby – 如何使用mina执行rake任务?

发布时间:2020-12-17 01:31:34 所属栏目:百科 来源:网络整理
导读:我想在我的Sinatra应用程序中运行我的Rakefile中包含的rake任务(迁移).我正在使用Mina进行部署.如果我在服务器上或在我的开发上运行它,rake migrate工作得很好,但我无法让Mina执行任务. 我当前的部署在config / deploy.rb中看起来像这样 task :deploy = :env
我想在我的Sinatra应用程序中运行我的Rakefile中包含的rake任务(迁移).我正在使用Mina进行部署.如果我在服务器上或在我的开发上运行它,rake migrate工作得很好,但我无法让Mina执行任务.

我当前的部署在config / deploy.rb中看起来像这样

task :deploy => :environment do
  deploy do
    # Put things that will set up an empty directory into a fully set-up
    # instance of your project.
    invoke :'git:clone'
    invoke :'deploy:link_shared_paths'

     to :launch do
      queue "sudo /opt/nginx/sbin/nginx -s reload"
    end
  end
end

我在部署块和启动块内尝试了两个队列“rake migrate”和队列“#{rake} migrate”,但它始终抱怨bash:command not found

解决方法

Mina使用ssh来运行远程命令.这意味着命令在登录时在不同的环境中运行.这会导致rvm和rbenv出现问题,因为它们未正确初始化.幸运的是,mina有 rvm support,你只需要设置它:

require 'mina/rvm'
task :environment do
  invoke :'rvm:use[ruby-1.9.3-p125@gemset_name]'
end

task :deploy => :environment do
  ...
end

你可以为rbenv做类似的事情(documentation)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读