dcoker-compose - docker 下如何執(zhí)行crontab
問題描述
項(xiàng)目運(yùn)行在docker下,現(xiàn)在有crontab 的需求,想要在docker 下添加crontab,發(fā)現(xiàn)加不了。使用docker 的大神們是怎么怎么在docker下來添加自己的crontab的呢。項(xiàng)目使用的是docker-compose 2.0系統(tǒng)配的是ubuntu語言用的是php7
問題解答
回答1:我的做法:
1,Dockerfile 里安裝 crontab2,用 volume 把本地的 etc/crontab 文件映射進(jìn)去。當(dāng)然也可以在 Dockerfile 里直接寫進(jìn)去3,用 supervisor 啟動主應(yīng)用和 crontab
其實(shí)使用 crontab 無非就是:安裝,配置,啟動。前兩步直接寫在 Dockerfile 中 build 時(shí)就做好了。關(guān)鍵是如何啟動,因?yàn)?Docker 只接受一個(gè) CMD,沒法同時(shí)啟動主應(yīng)用和 crontab,用 supervisor 就可以了。
回答2:1.Dockerfile如下
FROM centosMAINTAINER zhaojunlike<zhaojunlike@gmail.com>ADD ./crond/task.sh /server/task.sh##安裝并添加任務(wù)到crontabRUN yum install crontabs -y && (crontab -l; echo '*/1 * * * * /server/task.sh >>/var/log/task.log' ) | crontabCMD crond
你可以添加到docker-compose進(jìn)行構(gòu)建
2.可以使用其他腳本寫一個(gè)daemon程序,去模擬crontab實(shí)現(xiàn)
3.宿主機(jī)去實(shí)現(xiàn)(不推薦)
相關(guān)文章:
1. 如何解決docker宿主機(jī)無法訪問容器中的服務(wù)?2. 前端 - CSS3 box-shadow如何設(shè)置,或者用什么方法可以產(chǎn)生圖中這樣陰影的效果。3. node.js - vue-cll+sass 樣式不出來 已經(jīng)npm install sass、 sass-loader了4. html - css 如何讓文字標(biāo)題顯示在邊框上?5. docker 下面創(chuàng)建的IMAGE 他們的 ID 一樣?這個(gè)是怎么回事????6. 在應(yīng)用配置文件 app.php 中找不到’route_check_cache’配置項(xiàng)7. html按鍵開關(guān)如何提交我想需要的值到數(shù)據(jù)庫8. vim中編輯HTML文件時(shí)換行不能縮進(jìn)9. HTML5中怎么判斷用戶是否正在瀏覽頁面?10. html - 微信端video標(biāo)簽播放mp4視頻,安卓端提示視頻解析錯(cuò)誤
