Cron作业不会在Docker容器内运行
我试图安排一个任务在我的容器中运行,但无法让cron执行任何操作 我两次都跟踪了,但都没有成功。当我启动容器时,什么也没有发生 我制作了一个简单的容器: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
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就解决了这个问题吗?我不能用阿尔卑斯山做我的工作。