在GKE中运行cron作业时,日志未显示在Google云端控制台中

时间:2017-08-20 10:45:14

标签: docker kubernetes google-kubernetes-engine

#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云端控制台。

1 个答案:

答案 0 :(得分:2)

我遇到了同样的问题,无法找到让cron输出任何内容的方法。作为解决方法,您可以将> /proc/1/fd/1添加到crontab条目,并记录脚本的输出。例如:

* * * * * root /script.sh >/proc/1/fd/1 2>&1