Cron作业不会在Docker容器内运行

Cron作业不会在Docker容器内运行,docker,cron,Docker,Cron,我试图安排一个任务在我的容器中运行,但无法让cron执行任何操作 我两次都跟踪了,但都没有成功。当我启动容器时,什么也没有发生 我制作了一个简单的容器: test/ Dockerfile hello-cron Dockerfile的内容: 来自ubuntu:最新版本 运行apt-get-update&&apt-get-y安装cron 复制hello-cron/etc/cron.d/hello-cron 运行chmod 0644/etc/cron.d/hello-cron 运行c

我试图安排一个任务在我的容器中运行,但无法让cron执行任何操作

我两次都跟踪了,但都没有成功。当我启动容器时,什么也没有发生

我制作了一个简单的容器:

test/
    Dockerfile
    hello-cron
Dockerfile的内容:

来自ubuntu:最新版本 运行apt-get-update&&apt-get-y安装cron 复制hello-cron/etc/cron.d/hello-cron 运行chmod 0644/etc/cron.d/hello-cron 运行crontab/etc/cron.d/hello-cron 运行touch/var/log/cron.log CMD cron&&tail-f/var/log/cron.log 你好,克朗:

*****根echo Hello World>/var/log/cron.log 2>&1 我构建我的容器:docker build-t cron test。然后运行docker run-t-i cron测试

没有控制台输出。我还尝试在图像中输入bash,以检查日志文件的内容以及hello cron文件是否实际添加到crontab中:

docker exec -it <image-id> bash
cat/var/log/cron.log不会产生任何结果,而hello-cron文件位于/etc/cron.d/hello-cron


我知道这看起来像是重复的,但我所看到的所有公认的解决方案都不能解决这个问题。

为了cron,我建议使用alpine而不是ubuntu

FROM alpine:latest

RUN echo "* * * * * echo hello;exit 0" | crontab - 
CMD ["crond","-f"]
你可以探索更多的选择

    -c  Crontab directory
    -u  User
    -l  List crontab
    -e  Edit crontab
    -r  Delete crontab
    FILE    Replace crontab by FILE ('-': stdin)
同样,使用alpine,您不需要像在ubuntubase image中添加的那样,使用CMD cron&&tail-f/var/log/cron.log使容器不适合任何东西

当您使用CMD-cron&&tail-f/var/log/cron.log等CMD时,cron不再是容器的根进程,如果cron关闭,容器将重新启动或假设停止

使用CMD[crond,-f],如果您在前台运行容器,您将能够在控制台中看到日志,或者您可以在后台检查日志

奖金:


你只花了5.58MB就可以使用cronjob的docker容器,为了cron,我建议使用alpine而不是ubuntu

FROM alpine:latest

RUN echo "* * * * * echo hello;exit 0" | crontab - 
CMD ["crond","-f"]
你可以探索更多的选择

    -c  Crontab directory
    -u  User
    -l  List crontab
    -e  Edit crontab
    -r  Delete crontab
    FILE    Replace crontab by FILE ('-': stdin)
同样,使用alpine,您不需要像在ubuntubase image中添加的那样,使用CMD cron&&tail-f/var/log/cron.log使容器不适合任何东西

当您使用CMD-cron&&tail-f/var/log/cron.log等CMD时,cron不再是容器的根进程,如果cron关闭,容器将重新启动或假设停止

使用CMD[crond,-f],如果您在前台运行容器,您将能够在控制台中看到日志,或者您可以在后台检查日志

奖金:


您只需5.58MB就可以使用cronjob的docker容器了

您的cronjob是否在crontab-l中?您是否在不使用alpine的情况下修复了此问题?我的工作不能使用alpine。你的cronjob在crontab-l中吗?你没有使用alpine就解决了这个问题吗?我不能用阿尔卑斯山做我的工作。