#Assume i have ubuntu, selenium and chrome driver in the image
ADD crontab /etc/cron.d/simple-cron
# Add crontab file in the cron directory
ADD crontab /etc/cron.d/simple-cron
# Add shell script and grant execution rights
RUN wget myjava.jar [From some central repository]
RUN chmod +x /myjava.jar
ADD script.sh /script.sh
RUN chmod 777 /script.sh
# Give execution rights on the cron job
RUN chmod 0644 /etc/cron.d/simple-cron
# Create the log file to be able to run tail
RUN touch /var/log/cron.log
ADD run.sh /run.sh
RUN chmod +x /run.sh
CMD ["/run.sh"]
Crontab:
* * * * * root /script.sh
script.sh:
export DISPLAY=:99
cd /
/usr/bin/java -jar myjava.jar
run.sh:
#!/bin/bash
Xvfb :99 -screen 0 1024x768x16 &
cron -f
我正在使用上面提到的dockerfile,我有一个每分钟运行一次的cron作业。我没有在Google云端控制台中看到日志被捕获。
我看到一篇类似的帖子讨论了类似的问题。但我没有看到解决方案。 Google Container Engine stdout Logs Not Showing Up
我无法将我的cron脚本移动到Docker文件中的入口点。 请告诉我如何在运行cron作业时将日志重定向到Google云端控制台。
答案 0 :(得分:2)
我遇到了同样的问题,无法找到让cron输出任何内容的方法。作为解决方法,您可以将> /proc/1/fd/1
添加到crontab
条目,并记录脚本的输出。例如:
* * * * * root /script.sh >/proc/1/fd/1 2>&1