在使用docker時,你可能需要在容器啟動后定時執(zhí)行一些任務,比如備份數據或清理日志等。這時候我們就需要用到docker中的定時腳本。
首先,我們需要在Dockerfile中添加如下代碼:
COPY ./crontab /etc/cron.d/my-cron RUN chmod 0644 /etc/cron.d/my-cron
其中,crontab是我們要添加的定時任務腳本內容,my-cron是我們定義的腳本名稱。然后在這個文件中,我們可以設置我們希望在容器中運行的定時任務。例如,下面的腳本會每天晚上12點清理nginx的訪問日志:
0 0 * * * nginx /usr/sbin/logrotate /etc/logrotate.d/nginx
這里的0 0 * * *代表任務執(zhí)行的時間,即每天0點0分執(zhí)行;nginx代表執(zhí)行這個任務的用戶;/usr/sbin/logrotate /etc/logrotate.d/nginx是要執(zhí)行的命令。
最后,我們需要在運行容器時添加如下命令:
crond -f -l 8
這樣就可以讓定時任務在容器中運行了。