1. Home
  2. Run CRON jobs at Centos container
Run CRON jobs at Centos container

Here is how to configure cron daemon and rsyslog(to show cron logs) inside a docker contaner, based on CentOS images.

Inside container

Change into contaner with docker run -it CONTAINER-ID bash.

# First we need to install some packages
yum -y install vixie-cron rsyslog

# comment out a line inside rsyslog conf, containing $modLoad imklog
sed -i '/$modLoad imklog/s/^/#/' /etc/rsyslog.conf

# startup services
/etc/init.d/rsyslog start
/etc/init.d/crond start

In Dockerfile

To do this in advanced you could do it in Dockerfile and then start it with supervisord.

First create a supervisord.conf

[supervisord]
nodaemon=true

[program:rsyslog]
command=/sbin/rsyslogd -i /var/run/syslogd.pid -c 5

[program:crond]
command=/etc/init.d/crond start

The Dockerfile would be then like:

FROM centos:6

RUN yum -y install vixie-cron rsyslog
RUN sed -i '/$modLoad imklog/s/^/#/' /etc/rsyslog.conf

RUN yum install -y net-tools python-setuptools hostname inotify-tools yum-utils
RUN easy_install supervisor

ADD supervisord.conf /etc/supervisord.conf

ENTRYPOINT ["/usr/bin/supervisord"]

That's it! :)