dcoker-compose - docker 下如何執(zhí)行crontab
問(wèn)題描述
項(xiàng)目運(yùn)行在docker下,現(xiàn)在有crontab 的需求,想要在docker 下添加crontab,發(fā)現(xiàn)加不了。使用docker 的大神們是怎么怎么在docker下來(lái)添加自己的crontab的呢。項(xiàng)目使用的是docker-compose 2.0系統(tǒng)配的是ubuntu語(yǔ)言用的是php7
問(wèn)題解答
回答1:我的做法:
1,Dockerfile 里安裝 crontab2,用 volume 把本地的 etc/crontab 文件映射進(jìn)去。當(dāng)然也可以在 Dockerfile 里直接寫(xiě)進(jìn)去3,用 supervisor 啟動(dòng)主應(yīng)用和 crontab
其實(shí)使用 crontab 無(wú)非就是:安裝,配置,啟動(dòng)。前兩步直接寫(xiě)在 Dockerfile 中 build 時(shí)就做好了。關(guān)鍵是如何啟動(dòng),因?yàn)?Docker 只接受一個(gè) CMD,沒(méi)法同時(shí)啟動(dòng)主應(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.可以使用其他腳本寫(xiě)一個(gè)daemon程序,去模擬crontab實(shí)現(xiàn)
3.宿主機(jī)去實(shí)現(xiàn)(不推薦)
相關(guān)文章:
1. mysql優(yōu)化 - mysql 一張表如果不能確保字段列長(zhǎng)度一致,是不是就不需要用到char。2. mysql 怎么做到update只更新一行數(shù)據(jù)?3. 使用python中的pandas求每個(gè)值占該列的比例4. javascript - 新浪微博網(wǎng)頁(yè)版的字?jǐn)?shù)限制是怎么做的5. python - scrapy 如何組合2個(gè)不同頁(yè)面的數(shù)據(jù),一并存儲(chǔ)6. python2.7 - python 函數(shù)或者類 代碼的執(zhí)行順序7. sublime可以用其他編譯器替換嗎?8. javascript - 用jsonp抓取qq音樂(lè)總是說(shuō)回調(diào)函數(shù)沒(méi)有定義9. python - 多態(tài)調(diào)用方法時(shí)卻顯示bound method...10. node.js - mysql如何通過(guò)knex查詢今天和七天內(nèi)的匯總數(shù)據(jù)
