【学习记录】在容器中使用crontab
准备 crontab 配置文件
新建一个名为crontab
的配置文件,写定时任务规则:
1
| * * * * * echo "Crontab is working" > /proc/1/fd/1
|
/proc/1/fd/1
表示输出到容器主进程的标准输出,这样我们可以利用 kubectl logs 来查看到执行日志。
准备 Dockerfile
1
2
3
4
5
6
7
8
9
| FROM docker.io/centos:7
RUN yum -y install crontabs && rm -rf /etc/cron.*/*
ADD crontab /etc/crontab
RUN chmod 0644 /etc/crontab
RUN crontab /etc/crontab
CMD ["crond", "-n"]
|
1
2
3
4
5
6
7
8
9
| FROM docker.io/ubuntu:22.04
RUN apt-get update && apt-get install -y cron && rm -rf /etc/cron.*/*
ADD crontab /etc/crontab
RUN chmod 0644 /etc/crontab
RUN crontab /etc/crontab
CMD ["cron", "-f", "-l", "2"]
|
打包镜像
1
2
| docker build -t docker.io/gintonic/crontab:latest -f Dockerfile .
# podman build -t docker.io/gintonic/crontab:latest -f Dockerfile .
|