我正在利用当前时间来发展自己,我决定花一些时间在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应该随着时间的推移获得一些内容,但是什么也没有发生。我很确定是造成此错误的是我,但没有找到它。
有人知道我做错了什么吗?
谢谢和亲切的问候 霍尔格
答案 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