怎么给debian的docker容器添加crontab定时任务

77次阅读
没有评论

共计 1360 个字符,预计需要花费 4 分钟才能阅读完成。

本篇内容主要讲解“怎么给 debian 的 docker 容器添加 crontab 定时任务”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让丸趣 TV 小编来带大家学习“怎么给 debian 的 docker 容器添加 crontab 定时任务”吧!

现在大部分的 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 定时任务”有了更深的了解,不妨来实际操作一番吧!这里是丸趣 TV 网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-07-17发表,共计1360字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)