docker root crontab作业没有执行

时间:2015-09-08 19:11:38

标签: cron docker ubuntu-14.04 crontab dockerfile

我有一个<style name="AppTheme" parent="Theme.AppCompat.NoActionBar"> <item name="android:windowNoTitle">true</item> <item name="windowActionBar">false</item> </style> 泊坞窗图像,我想在其中安排一个python脚本来执行每一分钟。我的Ubuntu 14.04包含DockerFile以启动cron守护程序。 crontab条目如下所示:

CMD ["cron","-f"]

0,1 * * * * root python /opt/com.org.project/main.py >> /opt/com.org.project/var/log/cron.log 完全可由/opt/com.org.project/main.py访问并拥有,并设置了root个权限;所以可以执行。

我的744文件和/opt/com.org.project/var/log/cron.log中都没有显示任何内容。但是/var/log/cron.log显示ps aux | grep croncron -f处运行。

我错过了什么?为什么我的cron作业没有在容器内运行?

以下是我要求的PID 1内容:

DockerFile

2 个答案:

答案 0 :(得分:4)

为什么要使用cron?只需编写一个这样的shell脚本:

#!/bin/bash
while true; do
  python /opt/com.org.project/main.py >> /opt/com.org.project/var/log/cron.log
  sleep 60
done

然后将其设置为入口点。

ENTRYPOINT ["/bin/bash", "/loop_main.sh" ]

答案 1 :(得分:3)

您在哪里使用crontab -e?在主机上运行docker还是在容器本身?

我看不到您在所提供的dockerfile中添加了crontab条目。我建议你添加一个外部crontab文件,如下所示:

ADD crontabfile /app/crontab
RUN crontab /app/crontab
CMD ["cron", "-f"]

文件crontabfile必须位于Dockerfile旁边。

image_folder
|
|- Dockerfile
|- crontabfile

crontabfile的示例内容:

# m h  dom mon dow   command
30  4 * * * /app/myscript.py