2016-12-02 55 views
1

我有一個Docker容器,其中安裝了我的Python工具,包括我的Luigi管道接口。我想運行一個shell腳本,每週使用cron啓動我的Luigi管道。在Docker容器中運行預定的cron作業的解決方案?

我已經嘗試過讓cron在Docker容器內工作。我不能,在我的生活中,讓我的crontab -e文件運行。

在我的文件,我有:

0 0 * * Sun /data/myscript.sh

後跟一個新行。 Cron在後臺運行 - ps aux | grep cron顯示/usr/sbin/cron正在運行。此外,在我的/var/log/syslog文件,我有:

/USR/SBIN/CRON[2037]: (root) CMD (/data/myscript.sh)

我也使用0 0 * * Sun . /root/.bashrc ; sh /data/myscript.sh

然而,我的腳本不運行(運行我的腳本中使用bash myscript.sh手動,我得到的嘗試預期成績)。

對此提出建議?

+0

[在docker中運行cron python作業]的可能重複(http://stackoverflow.com/questions/26822067/running-cron-python-jobs-within-docker) – R0MANARMY

回答

6

由於沒有調度程序運行,因此計劃任務不會在正常容器內運行。唯一有效的任務將是您選擇通過CMD關鍵字或入口點運行的任務。

爲了執行計劃任務,它更謹慎地使用主機調度和泊塢窗EXEC命令:

docker exec <container> <command> 
docker exec <container> /data/myscript.sh 

所以,你最終會與您的主機像一個cron:

( Crontab風格) 0 * * * * root docker exec mycontainer /data/myscript.sh

如果您有一個羣集,您將不得不首先查詢羣集以查找容器,或者甚至讓腳本執行您。