扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
本篇内容主要讲解“怎么给debian的docker容器添加crontab定时任务”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么给debian的docker容器添加crontab定时任务”吧!
创新互联建站网站建设公司,提供网站建设、网站制作,网页设计,建网站,PHP网站建设等专业做网站服务;可快速的进行网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,是专业的做网站团队,希望更多企业前来合作!
现在大部分的docke镜像是基于debian
# cat /etc/issue debian gnu/linux 9 \n \l
docker容器是不支持后台服务的,像systemctl service crontab这些后台运行的服务是不能通过
run systemctl start nginx
类似这种方案实现的,你必须写自己的entrypoint脚本来启动。本文记录了基于debian的docker容器设置定时任务的方式。
案例背景
我部署一个前端项目,使用nginx镜像,由于官方镜像是基于debian,对比alpine也不觉得体积差多少,于是就使用debian作为容器系统。
dockerfile看起来是这样的
from nginx:1.15.10 maintainer ryan miao copy sources.list /etc/apt/sources.list run apt-get update && apt-get install -y net-tools procps curl wget vim telnet cron 、 && apt-get autoremove && apt-get clean && rm -rf /var/lib/apt/lists/* run mkdir -p /data/log/nginx && mkdir -p /data/web && rm /etc/nginx/conf.d/default.conf add default.conf /etc/nginx/conf.d/ add index.html /data/web/ add clean_log.sh /data/ copy clean-cron /etc/cron.d/clean-cron run chmod 755 /data/clean_log.sh && crontab /etc/cron.d/clean-cron entrypoint nginx && cron && /bin/bash
大概就是安装cron,然后替换nginx config, 然后复制我们的静态文件,最后启动nginx, 启动cron。
说说为啥会有定时任务。可以看到我们是有定时清理脚本的,由于nginx自己没提供日志处理模块,所以才有清理脚本。清理脚本需要定时执行,于是就有定时任务,于是发现docker容器是不支持service的。
总的来说一共有以下几步:
install
apt-get install cron
add to crontab
crontab /etc/cron.d/your-crontab
docker启动时启动cron
entrypoint cron && xxxxx
ps, 很多人还是喜欢alpine做镜像母体的,因为小。但这个linux命令确实不熟悉的。
到此,相信大家对“怎么给debian的docker容器添加crontab定时任务”有了更深的了解,不妨来实际操作一番吧!这里是创新互联网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流