色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

docker定時任務失效(docker 定時)

錢諍諍1年前9瀏覽0評論

最近發現在 Docker 中一些定時任務并沒有按照預期執行。在排查了多次之后,終于發現了此問題的原因,并進行了修復。

首先,我們需要知道在 Docker 中運行定時任務需要使用到 crontab 命令,而 crontab 命令是需要執行以下步驟的:

1. 編輯任務列表
2. 把任務列表保存到系統
3. 讀取任務列表并執行任務

在 Docker 中,我們借助 Dockerfile 生成鏡像時,可以通過 RUN 命令添加該任務,如下所示:

RUN echo "* * * * * /root/test.sh" >>/etc/crontab && \
chmod +x /root/test.sh

但是這種方式有一個問題,就是鏡像構建時生成的任務列表是靜態的,而我們在創建容器時,通過 ENTRYPOINT 或 CMD 命令啟動容器后,系統里的 crontab 命令是采用當前容器的系統時間(而非鏡像構建時系統時間)計算定時任務時間的,則這些靜態的任務會繼承鏡像構建時的系統時間,造成計算時間出現問題。

解決這個問題有個很簡單的方法,就是在創建容器時,把容器的 system time 同步到當前主機時間,這樣容器的 crontab 命令就可以正確計算定時任務的時間了。

docker run -d --name=container-name \
-v /etc/localtime:/etc/localtime:ro \
image:tag

這個問題的原因其實很小,實際帶來的影響也很大,希望我的分享能夠幫到各位開發者。