如何使用Capistrano在生产环境中将Ruby on Rails与rpush结合,运行为守护进程?

2026-04-11 15:161阅读0评论SEO资讯
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计315个文字,预计阅读时间需要2分钟。

如何使用Capistrano在生产环境中将Ruby on Rails与rpush结合,运行为守护进程?

我已经设置了Rails应用与Rpush一起使用。它使用rpush+start在开发中本地工作正常。但现在我想使用capistrano-2.15.5将其部署到我的EC2服务器上。部署我的deploy.rb文件:after deploy:stop,。

我已经设置了我的rails应用程序与rpush一起使用.它使用rpush start在开发中在本地工作正常.但是现在我想使用capistrano-2.15.5将它部署到我的EC2服务器上.

部署我的deploy.rb:

after "deploy:stop", "delayed_job:stop" after "deploy:stop", "rpush:stop" after "deploy:start", "delayed_job:start" after "deploy:start", "rpush:start" after "deploy:restart", "delayed_job:restart" after "deploy:restart", "rpush:restart" namespace :rpush do %w[start stop restart].each do |command| desc "#{command} rpush deamon" task command, roles: :app, except: {no_release: true} do run "cd #{deploy_to}/current && bundle exec rpush #{command}" end end end

现在,问题

如何使用Capistrano在生产环境中将Ruby on Rails与rpush结合,运行为守护进程?

>它从开发环境开始.我试着理解this页面告诉我该怎么做,但我做不到.
>我不知道pid是否存储在/ current目录或/ shared目录中.它应该在共享中,以便文件在部署之间保持不变

如果有人这样做(即使以不同的方式),请告诉我如何.

或者,我如何修复我的cap配方和/ initializers / rpush

对于Capistrano 3:

after :finished, :restart_rpush do on roles(:web) do within release_path do with rails_env: fetch(:rails_env) do execute :bundle, :exec, "rpush stop -e #{fetch(:rails_env)}" execute :bundle, :exec, "rpush start -e #{fetch(:rails_env)}" end end end end

然后检查tmp和其他目录是否正确链接:

set :linked_dirs, %w{log tmp/pids tmp/cache tmp/sockets vendor/bundle publicimg.558idc.com/uploadfile}

本文共计315个文字,预计阅读时间需要2分钟。

如何使用Capistrano在生产环境中将Ruby on Rails与rpush结合,运行为守护进程?

我已经设置了Rails应用与Rpush一起使用。它使用rpush+start在开发中本地工作正常。但现在我想使用capistrano-2.15.5将其部署到我的EC2服务器上。部署我的deploy.rb文件:after deploy:stop,。

我已经设置了我的rails应用程序与rpush一起使用.它使用rpush start在开发中在本地工作正常.但是现在我想使用capistrano-2.15.5将它部署到我的EC2服务器上.

部署我的deploy.rb:

after "deploy:stop", "delayed_job:stop" after "deploy:stop", "rpush:stop" after "deploy:start", "delayed_job:start" after "deploy:start", "rpush:start" after "deploy:restart", "delayed_job:restart" after "deploy:restart", "rpush:restart" namespace :rpush do %w[start stop restart].each do |command| desc "#{command} rpush deamon" task command, roles: :app, except: {no_release: true} do run "cd #{deploy_to}/current && bundle exec rpush #{command}" end end end

现在,问题

如何使用Capistrano在生产环境中将Ruby on Rails与rpush结合,运行为守护进程?

>它从开发环境开始.我试着理解this页面告诉我该怎么做,但我做不到.
>我不知道pid是否存储在/ current目录或/ shared目录中.它应该在共享中,以便文件在部署之间保持不变

如果有人这样做(即使以不同的方式),请告诉我如何.

或者,我如何修复我的cap配方和/ initializers / rpush

对于Capistrano 3:

after :finished, :restart_rpush do on roles(:web) do within release_path do with rails_env: fetch(:rails_env) do execute :bundle, :exec, "rpush stop -e #{fetch(:rails_env)}" execute :bundle, :exec, "rpush start -e #{fetch(:rails_env)}" end end end end

然后检查tmp和其他目录是否正确链接:

set :linked_dirs, %w{log tmp/pids tmp/cache tmp/sockets vendor/bundle publicimg.558idc.com/uploadfile}