Docker容器:Cronjobs无法启动(引起我的错误)

时间:2020-05-17 13:29:40

标签: linux docker cron dockerfile

我正在利用当前时间来发展自己,我决定花一些时间在Docker容器上。

我在自己正在从事的工作中创造了一些小小的学习练习。

我的Cronjobs有问题。它应该是每分钟运行一次的cronjob。完成的脚本的运行时间约为40至50秒。因此,我决定不每分钟启动一个容器,而是要保持容器运行并在容器内运行cronjobs。

我的问题:Cronjob没有启动。

#Dockerfile
FROM ubuntu
RUN apt-get update
RUN apt-get -yq install cron
COPY scripts/cmd.txt /home/cmd.sh
RUN chmod 744 /home/cmd.sh
COPY scripts/cron.txt /etc/cron.d/test-cron
RUN chmod 644 /etc/cron.d/test-cron
RUN crontab /etc/crontab.d/test-cron
RUN touch /var/log/cron.log
CMD cron && tail -f /var/log/cron.log

# scripts/cmd.txt
echo "test aus CMD" >> /var/log/cron.log

# scripts/cron.txt
* * * * * root /home/cmd.sh >> /var/log/cron.log 2>&1
* * * * * root echo "Hello world" >> /var/log/cron.log 2>&1

根据我的理解,/ var / log / cron.log应该随着时间的推移获得一些内容,但是什么也没有发生。我很确定是造成此错误的是我,但没有找到它。

有人知道我做错了什么吗?

谢谢和亲切的问候 霍尔格

1 个答案:

答案 0 :(得分:1)

文件中有一些错字。

#Dockerfile
FROM ubuntu
RUN apt-get update
RUN apt-get -yq install cron
COPY scripts/cmd.txt /home/cmd.sh
RUN chmod 744 /home/cmd.sh
COPY scripts/cron.txt /etc/cron.d/test-cron
RUN chmod 644 /etc/cron.d/test-cron
RUN crontab /etc/crontab.d/test-cron # Here it is, just replace `crontab.d` by `cron.d`
RUN touch /var/log/cron.log
CMD cron && tail -f /var/log/cron.log

# scripts/cron.txt
* * * * * root /home/cmd.sh >> /var/log/cron.log 2>&1 # Remove the `root` command from this line...
* * * * * root echo "Hello world" >> /var/log/cron.log 2>&1 # ...and also from that one