每当docker容器中的Rails应用程序cronjob无法正常工作

我正在设置一个cronjob,只要在Docker容器中。 一切看起来不错,但不是工作。

这是我的代码的一部分。

的Gemfile:

gem 'whenever', :require => false 

configuration/ schedule.rb

 set :output, "log/cron.log" env :PATH, ENV['PATH'] set :environment, 'development' every 1.day, :at => '1:00 am' do rake "import" end every 1.minute do p "#{Time.now}!" rake "cron_test" end 

和我的dockerfile

 RUN apt-get update -qq && apt-get install -y build-essential libpq-dev cron postgresql-client-9.4 dos2unix RUN touch $APP_HOME/log/cron.log RUN bundle exec whenever --update-crontab CMD cron && bundle exec puma 

当我跑步的whenever ,我得到了

 PATH=/usr/local/bundle/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin 0 1 * * * /bin/bash -l -c 'cd /mlcot && RAILS_ENV=development bundle exec rake import --silent >> log/cron.log 2>&1' * * * * * /bin/bash -l -c 'cd /mlcot && RAILS_ENV=development bundle exec rake cron_test --silent >> log/cron.log 2>&1' ## [message] Above is your schedule file converted to cron syntax; your crontab file was not updated. ## [message] Run `whenever --help' for more options. 

我做任何检查,我可以从谷歌find,但还没有发生。 我甚至没有得到log/cron.log文件。

但是如果我直接运行/bin/bash -l -c 'cd /mlcot && RAILS_ENV=development bundle exec rake cron_test --silent'

有用。 任何build议或意见将不胜感激。

我通过添加这个来解决它。

Dockfile:

 RUN gem install bundler --version 1.11.2 # another line CMD cron -f && bundle exec puma 

并将此行添加到schedule.rb

 ENV.each { |k, v| env(k, v) } 

在这里和这里感谢。