如何在centos pod里面运行crontab任务

今天收到一个需求,服务部署到kubernetes需要在pod容器里面运行crontab 定时任务,这里不能使用kubernetes的cronjob功能,上网找了一个上午,终于解决问题,具体dockerfile 如下:

FROM centos:7

USER root
RUN yum update -y && \
    yum reinstall -y glibc-common && \
    yum install  -y kde-l10n-Chinese && \
    yum install -y telnet net-tools && \
    yum install -y unzip zip && \
    yum clean all && \
    rm -rf /tmp/* rm -rf /var/cache/yum/* && \
    localedef -c -f UTF-8 -i zh_CN zh_CN.UTF-8 

 
ENV LANG=zh_CN.UTF-8 \
    LANGUAGE=zh_CN:zh \
    LC_ALL=zh_CN.UTF-8

RUN yum -y install cronie
RUN yum -y install crontabs

#网上说要加上这句,但尝试去掉后还是能正常
#RUN sed -i '/session    required   pam_loginuid.so/c\#session    required   pam_loginuid.so' /etc/pam.d/crond

#编写定时任务

RUN echo "*/1 * * * * /bin/echo 'it works!' >> /root/test.log" >> /var/spool/cron/root

#一定要在这里运行crond,试过用run来运行,发现不成功

CMD crond && tail -f /dev/null

具体在容器里面查看的结果如下:

如何在centos pod里面运行crontab任务_第1张图片

如何在centos pod里面运行crontab任务_第2张图片

你可能感兴趣的:(40程序员转运维,kubernetes,docker)