docker根crontab作业未执行

docker根crontab作业未执行,cron,docker,ubuntu-14.04,crontab,dockerfile,Cron,Docker,Ubuntu 14.04,Crontab,Dockerfile,我有一个ubuntu14.04docker映像,我想在其中安排一个python脚本每分钟执行一次。我的DockerFile包含CMD[“cron”,“-f”]以启动cron守护进程。crontab条目如下所示: 0,1 * * * * root python /opt/com.org.project/main.py >> /opt/com.org.project/var/log/cron.log #!/bin/bash while true; do python /opt/co

我有一个
ubuntu14.04
docker映像,我想在其中安排一个python脚本每分钟执行一次。我的
DockerFile
包含
CMD[“cron”,“-f”]
以启动cron守护进程。crontab条目如下所示:

0,1 * * * * root python /opt/com.org.project/main.py >> /opt/com.org.project/var/log/cron.log
#!/bin/bash
while true; do
  python /opt/com.org.project/main.py >> /opt/com.org.project/var/log/cron.log
  sleep 60
done
ADD crontabfile /app/crontab
RUN crontab /app/crontab
CMD ["cron", "-f"]
/opt/com.org.project/main.py
可完全访问,并由
root
所有,并设置了
744
权限;所以可以执行

我的
/opt/com.org.project/var/log/cron.log
文件中没有显示任何内容,也没有
/var/log/cron.log
。然而,
ps aux | grep cron
显示
cron-f
PID 1运行

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

以下是我的
DockerFile
内容:

FROM ubuntu

# Update the os and install the dependencies needed for the container
RUN apt-get update \
&& apt-get install -y \
nano \
python \
python-setuptools \
python-dev \
xvfb \
firefox

# Install PIP for python package management
RUN easy_install pip

CMD ["cron", "-f"]

为什么要使用cron?只需编写如下shell脚本:

0,1 * * * * root python /opt/com.org.project/main.py >> /opt/com.org.project/var/log/cron.log
#!/bin/bash
while true; do
  python /opt/com.org.project/main.py >> /opt/com.org.project/var/log/cron.log
  sleep 60
done
ADD crontabfile /app/crontab
RUN crontab /app/crontab
CMD ["cron", "-f"]
然后把它设为入口点

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

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

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

0,1 * * * * root python /opt/com.org.project/main.py >> /opt/com.org.project/var/log/cron.log
#!/bin/bash
while true; do
  python /opt/com.org.project/main.py >> /opt/com.org.project/var/log/cron.log
  sleep 60
done
ADD crontabfile /app/crontab
RUN crontab /app/crontab
CMD ["cron", "-f"]
文件
crontabfile
必须位于
Dockerfile
旁边

image_folder
|
|- Dockerfile
|- crontabfile
crontab文件的内容示例

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

crontab条目位于哪里?你能发布你的日志吗?@larsks我使用root用户下的
crontab-e
添加crontab条目。请查看dockerfile摘录的OP。你有没有得到解决方案?@LearningSlool没有。我会给你一些分数,让你找到解决我问题的变通解决方案,但我仍然想知道为什么cron作业没有执行。。。