gpt4 book ai didi

ruby-on-rails - Capistrano + Whenever gems - bin/rails : Permission denied

转载 作者:数据小太阳 更新时间:2023-10-29 07:32:01 24 4
gpt4 key购买 nike

我配置了一个可以正常部署和工作的生产环境。虽然我遇到了一个我想不通的附属问题。

我正在运行 Whenever gem 来执行几个 cron 作业,Whenever gem capistrano 实现使它们正确部署并且脚本正在执行。尽管在 whenever.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

关于ruby-on-rails - Capistrano + Whenever gems - bin/rails : Permission denied,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25495102/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com