这篇文章将为大家详细讲解有关如何给debian的码头工人容器添加crontab定时任务,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
现在大部分的docke镜像是基于debian
#, cat /etc/问题 Debian GNU/Linux 9, \ n \ l
码头工人容器是不支持后台服务的,像systemctl服务crontab这些后台运行的服务是不能通过
<代码> systemctl开始运行nginx 代码>
类似这种方案实现的,你必须写自己的入口点脚本来启动。本文记录了基于Debian的码头工人容器设置定时任务的方式。
<强>案例背景强>
我部署一个前端项目,使用nginx镜像,由于官方镜像是基于Debian,对比高山也不觉得体积差多少,于是就使用Debian作为容器系统。
Dockerfile看起来是这样的
得到nginx: 1.15.10 MAINTAINER Ryan 苗族 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//清单/* RUN mkdir  -p /数据/日志/nginx ,,, mkdir -p /数据/web ,,, rm /etc/nginx/conf.d/default.conf ADD default.conf /etc/nginx/conf.d/ADD index.html /数据/web/ADD clean_log.sh /数据/COPY clean-cron /etc/cron.d/clean-cron RUN chmod 755年,/数据/clean_log.sh ,,, crontab /etc/cron.d/clean-cron ENTRYPOINT nginx ,,, cron ,,,/bin/bash
大概就是安装cron,然后替换nginx配置,然后复制我们的静态文件,最后启动nginx,启动cron。
说说为啥会有定时任务。可以看到我们是有定时清理脚本的,由于nginx自己没提供日志处理模块,所以才有清理脚本。清理脚本需要定时执行,于是就有定时任务,于是发现码头工人容器是不支持服务的。
总的来说一共有以下几步:安装
<代码> apt-get安装cron
代码>
添加到crontab
<代码> crontab/etc/cron.d/your-crontab 代码>
码头工人启动时启动cron
<代码>入口点cron,,xxxxx 代码>
关于“如何给debian的码头工人容器添加crontab定时任务”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看的到。