1
ドッカーコンテナの中にあるときはいつでもcronjobを設定しています。 すべてはうまく見えますが、うまく機能しません。DockerコンテナのRailsアプリのcronjobが動作しないとき
ここに私のコードの一部です。
Gemfile:
gem 'whenever', :require => false
のconfig/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.
を取得
私はGoogleから見つけることができるすべてのチェックを行いますが、まだ何も起こりません。私もlog/cron.log
ファイルを取得していない。
しかし、私は実行 /bin/bash -l -c 'cd /mlcot && RAILS_ENV=development bundle exec rake cron_test --silent'
を向けている場合には動作します。どんな提案やアドバイスも感謝します。