84669 人學習
152542 人學習
20005 人學習
5487 人學習
7821 人學習
359900 人學習
3350 人學習
180660 人學習
48569 人學習
18603 人學習
40936 人學習
1549 人學習
1183 人學習
32909 人學習
專案運行在docker下,現在有crontab 的需求,想要在docker 下新增crontab,發現加不了。使用docker 的大神們是怎麼怎麼在docker下來加上自己的crontab的呢。 專案使用的是docker-compose 2.0系統配的是ubuntu語言用的是php7
我的做法:
1,Dockerfile 裡安裝 crontab2,用 volume 把本地的 etc/crontab 檔案映射進去。當然也可以在 Dockerfile 裡直接寫進去3,用 supervisor 啟動主應用程式和 crontab
volume
etc/crontab
其實使用 crontab 無非就是:安裝,配置,啟動。前兩步直接寫在 Dockerfile 中 build 時就做好了。關鍵是如何啟動,因為 Docker 只接受一個 CMD,沒辦法同時啟動主應用和 crontab,用 supervisor 就可以了。
1.Dockerfile如下
FROM centos MAINTAINER zhaojunlike<zhaojunlike@gmail.com> ADD ./crond/task.sh /server/task.sh ##安装并添加任务到crontab RUN yum install crontabs -y \ && (crontab -l; echo "*/1 * * * * /server/task.sh >>/var/log/task.log" ) | crontab CMD crond
你可以加入docker-compose進行建置
2.可以使用其他腳本寫一個daemon程序,去模擬crontab實作
3.宿主機去實現(不建議)
我的做法:
1,Dockerfile 裡安裝 crontab
2,用
volume
把本地的etc/crontab
檔案映射進去。當然也可以在 Dockerfile 裡直接寫進去3,用 supervisor 啟動主應用程式和 crontab
其實使用 crontab 無非就是:安裝,配置,啟動。前兩步直接寫在 Dockerfile 中 build 時就做好了。關鍵是如何啟動,因為 Docker 只接受一個 CMD,沒辦法同時啟動主應用和 crontab,用 supervisor 就可以了。
1.Dockerfile如下
你可以加入docker-compose進行建置
2.可以使用其他腳本寫一個daemon程序,去模擬crontab實作
3.宿主機去實現(不建議)