Linux
docker cron 不工作
我正在嘗試建構一個具有 cron 的 docker 映像。一個 cron,它將從 docker 文件系統的特定位置刪除文件。下面是我的 Dockerfile
FROM ubuntu:latest MAINTAINER docker@ekito.fr RUN apt-get update && apt-get -y install cron # Copy testfiles folder to docker container. COPY ./testfiles /opt/ # Create the log file to be able to run tail RUN touch /var/log/cron.log RUN (crontab -l -u root; echo "* * * * * root rm -rf /opt/*") | crontab # Run the command on container startup CMD cron ENTRYPOINT ["/bin/sh", "-c", "/bin/bash"]
一切都很成功。我的 cron 也設置在容器中
roadrunner:test shailesh$ docker run -it crontest /bin/bash root@ac31f5acc49f:/# ls bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var root@ac31f5acc49f:/# crontab -l * * * * * root rm -rf /opt/* root@ac31f5acc49f:/# cd /opt/ root@ac31f5acc49f:/opt# ls file1 file10 file11 file12 file13 file14 file15 file16 file17 file18 file19 file2 file20 file21 file22 file23 file24 file25 file3 file4 file5 file6 file7 file8 file9
但是它沒有執行並刪除文件夾中的
/opt/
文件。誰能告訴我配置有什麼問題。
試試這樣的事情,
FROM ubuntu:latest MAINTAINER docker@ekito.fr RUN apt-get update && apt-get -y install cron # Add crontab file in the cron directory ADD crontab /etc/cron.d/hello-cron # Give execution rights on the cron job RUN chmod 0644 /etc/cron.d/hello-cron # Apply cron job RUN crontab /etc/cron.d/hello-cron # Create the log file to be able to run tail RUN touch /var/log/cron.log # Run the command on container startup CMD cron && tail -f /var/log/cron.log
創建文件 crontab 並添加這樣的條目
* * * * * root echo "Hello world" >> /var/log/cron.log 2>&1
希望對你有幫助!!!