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

ruby-on-rails – Capistrano每当宝石 – bin / rails:权限被拒

发布时间:2020-12-17 02:23:04 所属栏目:百科 来源:网络整理
导读:我有一个配置的生产环境,它可以部署和工作.虽然我遇到了一个我无法弄清楚的辅助问题. 我正在运行Whenever gem来执行几个cron作业,Whenever gem capistrano实现让它们正确部署并且脚本正在执行.虽然在inside.log中我收到以下输出: /bin/bash: bin/rails: Per
我有一个配置的生产环境,它可以部署和工作.虽然我遇到了一个我无法弄清楚的辅助问题.

我正在运行Whenever gem来执行几个cron作业,Whenever gem capistrano实现让它们正确部署并且脚本正在执行.虽然在inside.log中我收到以下输出:

/bin/bash: bin/rails: Permission denied

该脚本使用跑步者从RSS源进行更新,虽然我使用Capistrano部署到新服务器,但这在先前的生产部署中没有发生任何问题.

我四处搜索并找到了这个question,虽然每次部署时,我都必须使bin / rails可执行(由于Capistrano的日期戳部署).有没有办法让Capistrano在部署时让我的文件可执行?或者使bin / rails可执行存在一些固有的安全风险?

解决方法

我能够通过以下方法解决我的问题(包括重启包括的名称空间为了简洁):

namespace :deploy do

 desc 'Restart application'
  task :restart do
    on roles(:app),in: :sequence,wait: 5 do
      # Passenger restart mechanism
      execute :mkdir,'-p',"#{ release_path }/tmp"
      execute :touch,current_path.join('tmp/restart.txt')
    end
  end

  after :publishing,:restart

  after :restart,:x_bin_rails do
    on roles(:web),in: :groups,limit: 3,wait: 10 do
      within release_path do
        execute :chmod,"u+x bin/rails"
      end
    end
  end

end

(编辑:李大同)

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

    推荐文章
      热点阅读