每当gem错误-找不到命令“ bin / rails”

时间:2018-10-16 20:25:36

标签: ruby-on-rails docker bundler whenever

我试图每3小时运行一次数据库备份。 问题是,在cron日志中,我没有运行而是得到以下消息:

找不到命令“ bin / rails”。

我的schedule.rb文件很简单:

set :bundle_command, "/usr/local/bin/bundle"

set :output, { error: '/usr/src/app/log/error.log', standard: '/usr/src/app/log/cron.log' }

require '/usr/src/app/lib/database_backup.rb'

every 2.minutes do

  runner "take_database_backup"

end

Rails在Docker容器中运行。

有什么想法会导致这种情况吗?

1 个答案:

答案 0 :(得分:0)

您的schedule.rb指定了:bundle_command,因此看来您打算让cronjob使用/usr/local/bin/bundle exec ...运行某些东西。

但是,:bundle_command仅适用于job_type :rakejob_type :scriptjob_type :runner解析为:

"cd :path && bin/rails runner -e :environment ':task' :output"

请注意,以上使用bin/rails,而不是bundle。因此,bin/rails决定解决的任何地方都将丢失您的:path垃圾桶。默认情况下,:path解析到执行whenever的目录。