我正在ubuntu 18上的docker容器中通过cron运行R脚本,并且能够通过向cron作业添加> /path/to/log
并在其中使用CMD cron && tail -f /var/log/cron_1.log /var/log/cron_2.log
来将日志写入容器中的文件Dockerfile。
我试图将日志直接重定向到docker日志,而不使用容器内部的日志。我浏览了this和this个问题,无济于事。
尝试了不同的方法-重定向到/dev/stdout/
,在cron文件中使用ln -sf /proc/1/fd/1 /var/log/cron_1.log
,通过> /proc/1/fd/1
创建指向docker日志的符号链接,但无法使其正常工作。请就我所缺少的提供建议
Dockerfile:
FROM rocker/r-ver:3.6.3
RUN apt update
RUN apt-get -y install cron
# copying cron jobs
COPY ./cron_1 /etc/cron.d/
COPY ./cron_2 /etc/cron.d/
# permissions
RUN chmod 0644 /etc/cron.d/cron_1
RUN chmod 0644 /etc/cron.d/cron_2
# applying jobs
RUN crontab /etc/cron.d/cron_1
RUN crontab /etc/cron.d/cron_2
CMD cron -f
cron作业如下:
0 */3 * * * . /.env && /usr/local/bin/Rscript "/cron_1.R" > /dev/stdout 2>&1