微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

cron工作不在ubuntu上的docker容器内运行

我有一个简单的Dockerfile如下
FROM ubuntu:latest

ADD crontab /etc/cron.d/test-cron

RUN chmod a+x /etc/cron.d/test-cron
RUN touch /var/log/cron.log

CMD cron && tail -f /var/log/cron.log

并且crontab文件内容很简单

* * * * * root echo "Hello world" >> /var/log/cron.log 2>&1
# empty line

当我在本地的OS X机器上运行(运行Docker机器)时,它工作正常(“Hello world”每分钟打​​印到日志文件).但是,当我尝试在Ubuntu机器上运行它时,cron作业不会运行(空日志文件).

这是我用来运行容器的命令

docker build -t crontest .
docker run --name cron crontest

我不知道为什么会这样.我不知道有什么问题,我有Ubuntu的框(错误的时间设置?).我已经尝试重新启动该机器没有任何效果.我目前还有其他的Docker容器运行在Ubuntu的盒子上,它们运行正常.

任何建议我可以做什么来调试/修复这将是非常感谢.

编辑:

进入容器(docker exec -it cron / bin / bash)之后,我可以验证cron是否在运行:

root@a2ad451af8d9:/# ps -ef | grep cron
root         1     0  0 20:15 ?        00:00:00 /bin/sh -c cron && tail -f /var/log/cron.log
root         6     1  0 20:15 ?        00:00:00 cron
root         7     1  0 20:15 ?        00:00:00 tail -f /var/log/cron.log
root        25    11  0 20:21 ?        00:00:00 grep --color=auto cron
使用apt-get install rsyslog在容器内安装rsyslog,并使用命令rsyslogd启动它,然后使用cron -L15(最大日志记录)启动cron.然后在容器中看文件/ var / log / syslog,以查看cron守护程序自己的日志输出.它会告诉你解析你的crontab是否有问题,如果你已经注册了,并且正在尝试运行你的工作,那么在你的情况下,它将每分钟类似下面的日志记录一个条目.

CRON [16]:(root)CMD(echo“Hello world”>> /var/log/cron.log 2& 1)

原文地址:https://www.jb51.cc/ubuntu/349136.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐