我正在使用Debian 11容器,我已经在其中安装了cron工具。我正在使用一个自定义Dockerfile:
FROM debian:11-slim
RUN apt-get update && \
apt-get upgrade --yes && \
apt-get install --no-install-recommends cron -y && \
apt-get install --no-install-recommends python3 -y && \
apt install --no-install-recommends python3-pip -y && \
apt-get clean && \
rm -rf /var/lib/apt/lists/*
RUN service cron start我正在启动cron服务,它似乎没有问题,但没有执行crontab计划。我在哪里能找到cron日志?我没有/var/log/syslog
发布于 2022-07-10 14:53:30
上面的Dockerfile的问题是将service cron start与RUN指令放在一起。此指令指定命令仅在Dockerfile构建步骤上运行,而不是在执行生成的映像时运行。要理解RUN、CMD、docker的EXEC指令之间的区别,请参阅此链接。
从cron收集日志(利用Docker的日志收集功能)的一种非常简单的方法是将cron脚本的输出重定向到stdout。这里是包含解决方案的要点。基本上,有两个部分的解决方案
cron进程作为docker映像的入口点。crontab文件进行更改,将cron作业的输出重定向到主cron进程的stdout。这个gist是为Ubuntu映像编写的,所以它应该在Debian映像上工作或者只需要很少的修改。但是,如果您的最终目标是在映像中运行cron,我建议使用alpine。有关此方法的更多信息,请参见stackoverflow回答。
https://stackoverflow.com/questions/72929262
复制相似问题