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作业没有执行。。。