ruby-on-rails – 使用Whenever VM,Docker和Dokku的Cron作业
我在Ubuntu 14.04上的Docker容器中有一个
Ruby on Rails应用程序.我使用Dokku设置部署,但我不确定如何让我的cron作业正常工作.
目前我正在使用whenever gem,它允许我做一些简单的事情: every 5.minutes do runner 'MyModel.run_something' end 问题是我认为每次使用git push dokku master进行部署时,它会重置容器并将其设置回默认设置,从而删除所有cron时间表. 所以我想也许cron调度需要在容器外部而在VM级别. 无论我做什么,我目前都没有看到任何cron工作正在运行.这是当我在ssh’d时运行crontab -l时会发生什么: root@dashboard:~# crontab -l no crontab for root 我对容器虚拟化很陌生,所以如果我跳过了关键部分,我很抱歉,但我很难过. 解决方法
让我永远工作这个 – 最后通过crontabs调用rails命令.我还在数字海洋服务器上使用ubuntu在dokku上上传了一个rails应用程序.试图让每当宝石工作……它只是没有.每当-i不起作用.
每当实际上没有为dokku环境创建任何新的crontabs.不过要弄清楚Cron的语法是好的! 这就是我如何让计划任务在dokku中工作…… >通过sudo crontab -e手动创建自己的crontab,这将在vi / vim中打开它 您可以使用sudo crontab -r删除它,或使用sudo crontab -l查看当前的crontabs >将以下代码添加到新的crontab 以下代码将每1分钟执行一次. SHELL=/bin/bash PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games * * * * * /bin/bash -c 'dokku run appname rails r MyModel.run_something' 使您的环境变量等同于env命令中的变量 > grep CRON / var / log / syslog查看输出日志以进行故障排除.您可能必须通过sudo apt-get install postfix安装postfix,以便Cron发送错误的邮件通知,否则您可能会从syslog获得“(CRON)信息(没有安装MTA,丢弃输出)”错误. 希望这很有帮助.这至少让我了解了! (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |