Ant*_*ony 5 cron ruby-on-rails whenever docker dokku
我在Ubuntu 14.04上的Docker容器中有一个Ruby on Rails应用程序.我使用Dokku设置部署,但我不确定如何让我的cron作业正常工作.
目前我正在使用every gem,它允许我做一些简单的事情:
every 5.minutes do
runner 'MyModel.run_something'
end
Run Code Online (Sandbox Code Playgroud)
问题是我认为每次使用git push dokku master它部署时都会重置容器并将其设置回默认设置,从而删除所有我的cron时间表.
所以我想也许cron调度需要在容器外部而在VM级别.
无论我做什么,我目前都没有看到任何cron工作正在运行.这是当我crontab -l在ssh'd 时运行时发生的事情:
root@dashboard:~# crontab -l
no crontab for root
Run Code Online (Sandbox Code Playgroud)
我对容器虚拟化很陌生,所以如果我跳过了关键部分,我很抱歉,但我很难过.
小智 9
让我永远工作这个 - 最后通过crontabs调用rails命令.我还在dokku上使用ubuntu在数字海洋服务器上上传了一个rails应用程序.试图让每当宝石工作......它只是没有. whenever -i不起作用.
每当实际上没有为dokku环境创建任何新的crontabs.不过要弄清楚Cron的语法是好的!
这就是我如何让计划任务在dokku中工作......
sudo crontab -e它可以在vi/vim中打开它您可以使用sudo crontab -r它来删除它,或sudo crontab -l查看当前的crontabs
以下代码将每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'
Run Code Online (Sandbox Code Playgroud)
使您的环境变量等同于env命令中的变量
grep CRON /var/log/syslog查看故障排除的输出日志.您可能必须安装postfix sudo apt-get install postfix,以便Cron发送错误的邮件通知,否则您可能会“(CRON) info (No MTA installed, discarding output)”从syslog中收到错误.
cat /var/mail/root 查看从Cron收到的邮件 - 如果cronjob无法正常工作则说明错误.
希望这很有帮助.这至少让我了解了!
| 归档时间: |
|
| 查看次数: |
3754 次 |
| 最近记录: |